如何根据另一个Azure管道的结果有条件地触发Azure管道?

时间:2018-11-14 21:21:01

标签: azure-pipelines

我有两个Azure管道P0和P1。当前,当P0作为构建完成触发器完成时,将触发P1运行。

enter image description here

如果P0失败,我不想触发P1。似乎没有一种添加条件以仅基于成功完成先前构建而触发构建的方法。我们必须启动P1并根据条件将其取消。

我看到的唯一方法是通过以下任一方法:

  1. 通过P0中的构建脚本Write-Host ("##vso[task.setvariable variable=BuildContinue;]$buildContinue")设置环境变量,并通过构建任务变量$(BuildContinue)通过P1中的脚本读取该变量。
  2. 在P0中将信号量文件设置为构建工件,然后在P1中下载并读取该文件。

两个选项都需要运行构建。有更好的方法有条件地运行Azure管道吗?

1 个答案:

答案 0 :(得分:1)

我们不支持有条件的构建完成触发器。

短期内,您的好选择是:

  • 按照您的建议传递标志。需要运行P1版本,但我看不到会造成什么危害(您可能有某些原因,使我看不见它不合适)。
  • 将两个管道统一为一个多任务管道。您可能有充分的理由说明为什么今天不这样做,但是可以通过设置条件来阻止P1作业永远运行。
  • 与其定义一个监视P0的P1触发器,不如在P0上执行一个步骤,该步骤使用REST API对运行进行排队。勉强可以说这是“好”的选择–符合您的要求,但不是很优雅。