Dynamics 365 DevOps CI/CD之WebResource

news2024/9/20 8:11:47

      对于D365自身的发布,简单点来说就是Solution的发布,复杂一些会涉及周边集成接口等一系列的发布。如果是单纯的Solution的发布的Azure DevOps商店里有很多工具,比如Power DevOps Tools,这个我之前也有博文转载过相关文章,里面有配置步骤。

     那对于Solution的发布来说,其中包含了很多的组件(Component),其中涉及到代码的如WebResource,Plugin,Action,Custom WorkFlow等。那CI的部分就是需要将这些代码从git repo中拉取最新的发布到D365。

      本篇就以WebResource的发布举例,会使用到另一篇博文中的发布工具skpl,具体工具怎么试用跳转链接查看, 下面介绍下如何构建CI Pipeline

1,新建一个Pipeline, 选择Azure Repos, 选择对应的项目和代码分支

2,如果你的Project中使用到了NuGet包,则需要先下载NuGet tool, 然后添加NuGet restore命令

3, 编译下项目,如果你的项目下只有纯WebResource没有其他,就不需要编译,但很多项目会使用TS写,这时候就需要编辑转化成JS文件,编译是需要Agent的,现在Azure提供了默认的Agent的,如果没有引用其他复杂的第三方组件(这里就需要你自己安装Azure VM来设置编译环境作为Agent了),普通的编译是足够的,

4,然后就是Copy我们的可执行文件,我这的POC比较简单,就拷贝了scripts下的JS文件,Source Folder就是你的Azure Repo中的代码路径,Target Folder就是跑批需要的JS被执行文件的存放地址

$(build.ArtifactStagingDirectory)\Webresources\scripts

 5,继续拷贝spkl执行文件和配置文件(配置文件如何设置见spkl博文介绍),Target Folder就是这两个文件存档的执行地址

$(build.ArtifactStagingDirectory)/spkl

 6,最后一步就是发布Artifact

 设置完上述6步,我们的CI Pipeline就设置完成了,下面来配置CD Release

1, 首先添加我们的CI Artifacts, 并且Enable CD trigger, 即CI执行成功后立即执行CD

 2,接下来配置CD中的Task, Agent还是使用Azure内置的,因为我们的发布需要使用到spkl工具,而这个工具需从NuGet下载,所以我们首先需要下载NuGet Tool

 3, 第二步就是下载spkl了

 4,第三步是删除多余的配置文件,而这个安装目录里的config文件只是个sample无法执行的,而命令行会一直搜索config文件去执行导致报错,所以删掉它

spkl.1.0.640\content

 5,最后一步就是执行命令了,path就是指定到CI阶段生成的执行文件,connection变量就是bat执行命令所需的连接D365的字符串,这里需要用ClientSecret

url=https://xxx.crm5.dynamics.com/;AuthType =ClientSecret;ClientId=xxx;ClientSecret=xxx;AppId = xxx; RedirectUri = app://343fd800-95a9-4f75-9c59-0dde4990de54;

 至此CD配置就完成了,执行下CI看看结果吧,上几张关键的执行图

从repo拉取最新的JS文件,并copy到执行目录

 copy spkl执行文件和配置文件

  CD执行deploy命令,发布到D365

 下图的报错就是在CD阶段要删除spkl默认文件夹下的配置文件的原因

      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/535726.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

史上最通俗易懂的EWMA(指数加权移动平均)的参数解释以及程序代码

文章目录 一、EWMA(指数加权移动平均)是什么?二、详细的参数解释3、使用Python pandas库中的ewm()函数实现指数加权移动平均(EWMA)的示例代码总结 一、EWMA(指数加权移动平均)是什么&#xff1f…

抢跑智驾AI芯片「新路径」

“胆量”这个词,被后摩智能创始人兼CEO吴强着重提及。 5月10日,后摩智能发布首款存算一体智驾芯片鸿途™H30,以12nm制程实现最高物理算力 256TOPS,典型功耗 35W,成为国内率先落地存算一体大算力 AI 芯片的公司。即&am…

多线程的最最简单的基本了解

引言: 在学习完常规的语法后,我们将进入下一步的学习,而多线程则是被大多数人认为的下一步的学习目标,因为在有了基础的语法大框架后我们都有了对编程的一个基本的认知,而多线程则是开始有了一定的深度。 一、线程的基…

企业电子招标采购系统源码之传统采购模式面临的挑战

采购类型多 采购制度:采购金额、部门、品类的差异导致管理标准不同。 采购流程:从供应商管理、寻源操作到合同签订、订单执行,业务流程长,审批节点多,传统管理透明度低,联动性差。 供应商管理难 寻源&#…

Aixcoder:AI辅助编程工具

【产品介绍】 aixcoder是一款基于深度学习人工智能技术的AI辅助编程工具。提供了一个由各个领域的专业代码训练出来的“虚拟编程专家”,通过与aixcoder进行结对编程,程序员可以感受到工作效率的显著提升。 借助aixcoder的帮助,程序员可以摆脱…

ChatGPT教程 基于Springboot+Spring+MybatisPlus实现gpt3.5接口开发

⛪ ChatGPT教程: 基于SpringbootSpringMybatisPlus实现gpt3.5接口开发 🚀 文章介绍: 本文基于SpringBootSpringMybatisPlus实现一个响应快速的gpt接口,可通过与前端整合开发对应的前端页面 🚀 源码获取: 项目中的资料可以通过文章底部小卡片获…

AutoSizer.exe:自动调整窗口大小的便捷工具

AutoSizer.exe是一款实用的桌面应用程序,它旨在帮助用户自动调整窗口大小,提供更好的用户体验。无论您是在使用Windows操作系统进行日常工作还是进行多任务处理,AutoSizer.exe可以简化您的工作流程,提高效率。本文将介绍AutoSizer.exe的下载地址、功能介绍、使用方法以及其…

国考省考行测:增长率,减少率,增长3倍,是3倍,比较增长率直接相除,能除就除,能减就减,看题三要素:时间,关键词,考点

国考省考行测:增长率,减少率,增长3倍,是3倍,比较增长率直接相除,能除就除,能减就减,看题三要素:时间,关键词,考点 2022找工作是学历、能力和运气…

__101对称二叉树------进阶:你可以运用递归和迭代两种方法解决这个问题吗?---本题还没用【迭代】去实现

101对称二叉树 原题链接:完成情况:解题思路:参考代码: 原题链接: 101. 对称二叉树 https://leetcode.cn/problems/symmetric-tree/ 完成情况: 解题思路: 递归的难点在于:找到可以…

谈谈包装类与泛型

目录 包装类 基本数据类型与对应的包装类 装箱和拆箱 装箱 拆箱 泛型 什么是泛型 泛型的语法与使用 泛型的编译 擦除机制 泛型的上界 泛型方法 提到泛型的话,我们就先提一下包装类吧! 包装类 在Java中,由于基本类型不是继承自Ob…

STC8单片机+基于DMP库解析MPU6050数据+匿名上位机图形化显示

STC8单片机+基于DMP库解析MPU6050数据+匿名上位机图形化显示 📌相关篇《STC8单片机+基于DMP库解析MPU6050数据+vofa+图形化显示》✨该工程代码匹配的是匿名四轴上位机软件的2.6版本通讯协议,所以支持使用2.6版本的,最新的版本不支持。🌿验证对象:STC8H8K64U🌿时钟频率…

产品需求文档|协调、协作和沟通新产品开发的专业指南

「产品需求文档」是一个强大的产品管理工具,被众多敏捷团队推荐,并被一些行业中的大公司使用。 它有助于使团队保持一致,促进长期合作,并向团队成员传达优先必做事项,以完成工作。 如果你还没有开始制作,…

一个有趣的vc1编码器

这里分享一个vc1编码器,下载地址: https://download.csdn.net/download/weixin_43360707/87791898 文件包在附件,打开文件夹,可以看到下面三个文件夹: 因为我们的系统试Linux,所以我们选择Linux(x64). 继…

kubeadm方式搭建的k8s集群升级——2023.05

文章目录 一、概述二、集群概况三、升级集群2.1 确定升级版本2.2 升级Master2.3 升级 Worker 四、验证集群 一、概述 搭建k8s集群的方式有很多种,比如二进制,kubeadm,RKE(Rancher)等,k8s集群升级方式也各有…

利用android studio 生成 JNI需要的动态库so文件 图文详解

一、环境搭建 1.1 Android studio2021.2.1安装 到官网下载,此处不再陈述 1.2 JNI安装 JNI 是JDK里的内容,电脑上正确安装并配置JDK即可。 1.3 NDK安装 直接在Android studio下载(File---->Settings) 1.4 编译工具 工具一…

72.建立一个表格组件

本节课我们将实现如下的表格&#xff1a; ● 首先&#xff0c;我们直接用表格元素将这些数据展现出来 <table><tr><td>Chair</td><td>The Laid Back</td><td>The Worker Bee</td><td>The Chair 4/2</td></tr…

数据结构与算法——算法与算法分析

算法与算法分析 初识算法算法的定义算法的描述算法与程序算法的特性算法设计的要求 算法时间效率的度量事前估计法算法时间复杂度的渐进表示法算法时间复杂度案例分析最好、最坏和平均时间复杂度算法的空间复杂度 初识算法 算法的定义 算法&#xff0c;即是对特定问题求解方法…

Winform实现以管理员模式启动并实现修改系统时间

场景 SpringBoot/Java中定时请求并根据服务端响应头的date实现本地Windows修改时间/时间同步(管理员权限问题-bat管理员启动cmd并运行jar)&#xff1a; SpringBoot/Java中定时请求并根据服务端响应头的date实现本地Windows修改时间/时间同步(管理员权限问题-bat管理员启动cmd…

在家吃灰老主机怎么自建黑群晖NAS当影音服务器

准备:u盘一个,老主机一个,要显示器键盘,烧u盘软件win32-disk(网上找)、balena(balenaEtcher - Flash OS images to SD cards & USB drives)的 1,巴西大佬的引导文件 进来这里 GitHub - fbelavenuto/arpl: Automated Redpill Loader 点右边的release文件下载 下载…

golang 函数调用栈笔记

一个被函数在栈上的情况&#xff1a;&#xff08;栈从高地址向低地址延伸&#xff09; 返回地址&#xff08;函数执行结束后&#xff0c;会跳转到这个地址执行&#xff09; BP&#xff08;函数的栈基&#xff09;局部变量返回值&#xff08;指的是函数返回值&#xff0c;eg&am…