有什么方法可以在天蓝色devops中进行选择性部署吗?

时间:2020-01-29 07:36:05

标签: azure azure-devops

我有一个发布管道,可用于将资源部署到其他环境。一切正常,但问题是每次部署时,即使没有进行任何修改,所有资源也都被部署。有没有办法可以进行选择性部署?即,我仅部署已修改的资源。任何帮助都可以。谢谢。

2 个答案:

答案 0 :(得分:1)

这是一个广泛的问题。没有开箱即用的功能来选择要部署的单元。但是您可以在发布管道中使用变量:

  1. 为每个资源/单元定义一个变量,并设置一些默认值和“发布时可设置”属性。 enter image description here
  2. 对于每个资源,定义一个单独的任务来部署和定义自定义条件,例如:and(succeeded(), eq(variables['Custom.DeployUnit1'], 'YES')) enter image description here
  3. 您可以在发布创建时更新以下变量: enter image description here

答案 1 :(得分:0)

有什么方法可以在天蓝色devops中进行选择性部署吗?

在天蓝色的开发人员中没有这样的现成的选择性部署方式。

由于Azure devops版本不支持仅发布更改的文件,因为仅发布更改的文件并不总是有意义,并且无法存档项目打算发布的内容(例如仅在提交中更改的配置文件)。

但是您可以创建一个PowerShell脚本来比较所有文件的时间戳:

  • 创建XML文件,该文件存储以下信息的最新上传/发布信息: 每个文件(例如文件名,日期时间,变更集/提交版本)。
  • 创建一个PowerShell脚本文件,其中包含要比较的逻辑 文件(获取文件元数据并与该XML文件进行比较)并复制 将文件更新到特定文件夹
  • 发布该文件夹中的文件

检查similar thread以获得更多详细信息。

此外,如果通过deploy.cmd或MSDeploy.exe进行部署,则还可以使用-useChecksum WebDeploy标志:

WebDeploy/MSDeploy Quick Tip: Only Deploy Changed Files

希望这会有所帮助。