是否可以使用$(RELEASE.TRIGGERINGARTIFACT.ALIAS)作为触发不同发布阶段的条件?

时间:2020-09-05 09:31:13

标签: azure-devops

我的问题与此question几乎相同。但是,我真的没有收到那里的评论或提出的解决方案。

说我有两个工件:A1和A2。

A1---> Dev stage
A2---> UAT stage.

我想要的是发布A1时仅部署Dev阶段。但是目前,当发布A1时,将触发Dev和UAT。

查看上一个问题的评论,

  1. 如何将$(RELEASE.TRIGGERINGARTIFACT.ALIAS)用作触发条件?看着过滤器,我看不到放置自定义条件的地方

  2. 如果我按照建议创建了第三个工件,那么如何在构建A1或A2的基础上设置不同的标签?

  3. 还有其他解决方法吗?

2 个答案:

答案 0 :(得分:1)

说我有两个工件:A1和A2。

打开Dev stage->单击“代理程序作业”->“展开其他选项”,然后选择“使用变量表达式自定义条件”->添加条件eq(variables['RELEASE.TRIGGERINGARTIFACT.ALIAS'], 'A1')。只有在RELEASE.TRIGGERINGARTIFACT.ALIAS的值为A1时,Dev阶段才会运行,否则将跳过此阶段。

UAT stage中的配置相同,条件为eq(variables['RELEASE.TRIGGERINGARTIFACT.ALIAS'], 'A2')

enter image description here

在我的发布管道中,我更新了工件_test以触发此发布管道,变量RELEASE_TRIGGERINGARTIFACT_ALIAS_test,它运行Stage 1并跳过{{1} }

enter image description here

答案 1 :(得分:0)

这可能不是确切的答案,但仍然可以解决您的问题。

您可以tag根据生成的工件名称进行构建。如果构建产生工件A1,请向其添加标签A1。这样,您可以像这样基于artifact filters设置发布阶段条件:

enter image description here

对于Dev阶段触发器,按A1过滤构建标记,对于UAT触发器,按A2过滤。