如何配置手动触发的azure-pipeline-all.yaml按顺序执行两个Azure子流水线
实现方案
你可以通过Azure DevOps的多阶段编排+模板引用能力实现需求,以下是可直接使用的azure-pipeline-all.yaml配置,以及说明:
最终配置代码
# 禁用所有自动触发规则,仅支持手动启动流水线 trigger: none stages: # 第一阶段:运行azure-pipeline01.yml的全部逻辑 - stage: ExecutePipeline01 jobs: # 直接引用同仓库下的azure-pipeline01.yml作为作业模板 - template: azure-pipeline01.yml # 第二阶段:等待第一阶段执行成功后,运行azure-pipeline02.yml的全部逻辑 - stage: ExecutePipeline02 # 显式声明依赖第一阶段,保证执行顺序 dependsOn: ExecutePipeline01 jobs: - template: azure-pipeline02.yml
配置说明
trigger: none配置会完全关闭CI自动触发能力,该流水线只能通过Azure DevOps页面手动点击启动,符合你的要求- 采用多阶段(
stages)结构,通过dependsOn字段强制第二阶段必须等第一阶段执行成功后才会启动,严格保证执行顺序为01→02 - 直接引用原有两个流水线文件作为模板,不需要重复复制代码,后续修改
azure-pipeline01.yml或azure-pipeline02.yml的逻辑时,总流水线会自动同步更新,无需额外维护
注意事项
- 如果你的两个流水线文件不在仓库根目录,需要把
template后的路径改为对应文件的相对路径,比如文件在OutSideFolderEAIL/下就写template: OutSideFolderEAIL/azure-pipeline01.yml - 原有两个流水线的自动触发规则不需要修改,不会影响总流水线的运行,两者可以独立使用
内容的提问来源于stack exchange,提问作者amitsuneja
相关产品推荐
相关产品推荐

