通过YML按计划运行特定阶段

时间:2020-04-15 05:25:59

标签: azure azure-devops azure-pipelines

在Azure Devops YML多阶段管道中:

是否可以在不手动输入管道来指定阶段的情况下按计划运行特定阶段?

提前谢谢

1 个答案:

答案 0 :(得分:0)

您可以做的是在Yaml构建阶段使用条件。您可以使用“ Build.Reason”变量(请参见https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml)来确定是否应运行一个阶段:

stages:
- stage: Stage1
  condition: and(succeeded(), eq(variables['Build.Reason'], 'Schedule'))
  jobs:
  - some jobs
- stage: Stage2
  condition: and(succeeded(), ne(variables['Build.Reason'], 'Schedule'))
  jobs:
  - some jobs

上面的示例在从计划中触发构建时仅运行stage1,而在未从计划中触发构建时仅运行stage2。当然,您可以根据需要调整条件。

另一个选择是将阶段移至模板,然后使用包含正确阶段的模板文件创建2个单独的yaml管道。这样,您只需要定义一个阶段的内容一次,但是您可以在多个管道中重复使用它。参见https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops