如果没有新版本的构建,如何跳过在Azure VSTS CD管道中发布构建工件

时间:2019-02-18 06:32:32

标签: azure-devops azure-pipelines-release-pipeline

我们有一个发布定义,其中提供了一系列asp.net核心服务以及Angular应用。

大多数服务不是很经常更新,所以问题是如何比较已部署到环境中的工件版本,以及如何跳过以前是否已部署了最新版本?

我们正在准备多个环境。

2 个答案:

答案 0 :(得分:1)

我不认为有可能,至少在本地,您可以计算文件哈希值,如果匹配则不要部署,另一种选择是在构建应用程序时使用路径触发器进行过滤。例如,您的目录结构如下:

root
|--app1
|--app2
etc

您可以像这样在yaml构建中定义路径过滤器:

trigger:
  paths:
    include:
      - app1/*
      - sharedlibs/* (if you have them)

这种方式构建仅在这些目录中的文件有任何更改时才会触发

答案 1 :(得分:1)

您可以添加其他发行环境,以通过PowerShell检查当前工件的版本(例如Build.SourceVersion,选中variables in release),然后如果已经成功发行,则使任务失败。

对于暂存环境,请选择“后环境”选项,然后选择上一个环境。

另一方面,由于您提到的大多数服务不是很经常更新,因此可以使用4c74356b41的建议来过滤构建,仅构建和发布所需的更改。