You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过YAML条件配置实现作业流的阶段执行控制

多阶段流水线按依赖顺序执行的YAML配置方案

首先修正原配置的基础问题:原配置重复声明了3次根级stages字段,YAML解析时同级别同名字段会被覆盖,最终只会保留最后一次声明的StageC配置,所有阶段必须放在同一个stages数组中管理。

要实现你要求的执行逻辑,核心是通过dependsOn字段显式声明阶段间的依赖关系,该字段默认的触发规则就是所有依赖的前置阶段全部执行成功,当前阶段才会启动,刚好匹配你的需求:

  • StageB配置依赖StageA,即可实现仅StageA成功后运行
  • StageC配置同时依赖StageA、StageB,即可实现两个阶段都成功后运行

最终可用的完整配置如下:

stages:
- stage: StageA
  jobs:
  - job: DoStuffStageA
    steps:
    # 替换为StageA实际执行步骤
    - script: echo "Run Stage A tasks"

- stage: StageB
  # 声明依赖StageA,仅StageA执行成功时触发
  dependsOn: StageA
  jobs:
  - job: DoStuffStageB
    steps:
    # 替换为StageB实际执行步骤
    - script: echo "Run Stage B tasks"

- stage: StageC
  # 声明同时依赖StageA、StageB,仅两个阶段全部成功时触发
  dependsOn:
  - StageA
  - StageB
  jobs:
  - job: DoStuffStageC
    steps:
    # 替换为StageC实际执行步骤
    - script: echo "Run Stage C tasks"

补充说明:

  • 如果不写dependsOn,流水线默认会按stages数组的排列顺序,让每个阶段依赖紧邻的上一个阶段,看似也能实现顺序执行,但显式声明依赖更稳妥,后续调整阶段排列顺序时不会破坏预设的执行逻辑。
  • 只有需要修改触发规则(比如前置阶段失败也允许当前阶段运行、基于前置阶段输出变量判断是否运行)时,才需要额外搭配condition字段配置,你当前需要的“仅前置成功运行”是默认规则,无需额外配置。

内容的提问来源于stack exchange,提问作者itye1970

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 12:24:24