在Azure Devops YML多阶段管道中:
是否可以在不手动输入管道来指定阶段的情况下按计划运行特定阶段?
提前谢谢
答案 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