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

多Pipeline依赖配置疑问:A、B均完成后触发C的逻辑确认

多Pipeline触发逻辑判断

我拥有两个独立的Pipeline A和B,需求是仅当A与B均成功完成后才触发Pipeline C;A、B运行时间不同,若其中任一失败则不触发C。现询问如下示例配置采用的是「或」逻辑还是「与」逻辑?此前我仅配置过单Pipeline依赖。

配置示例

resources:
  pipelines:
    - pipeline: A
      source: A.source
      trigger:
        branches:
          - master
    - pipeline: B
      source: B.Source
      trigger:
        branches:
          - master

回答

你给出的示例配置采用的是**「或」逻辑**:

  • 只要Pipeline A或Pipeline B任意一个在master分支成功完成,就会触发Pipeline C
  • 哪怕其中一个失败,另一个成功时,C依然会被触发,这不符合你要的「两者都成功才触发」的需求

如果要实现你需要的**「与」逻辑**(仅A、B都成功才触发C),可以按以下方式调整:

  1. 先将resources中的trigger改为none,避免单个Pipeline完成就触发C
  2. 在Pipeline C中添加前置检查任务,验证A和B的最新运行状态:
    • 可以编写脚本调用对应CI平台的API查询A、B的运行状态
    • 仅当两者状态均为成功时,才继续执行C的后续任务;否则直接终止Pipeline

也可以通过YAML的条件判断来实现:

resources:
  pipelines:
    - pipeline: A
      source: A.source
      trigger: none
    - pipeline: B
      source: B.Source
      trigger: none

jobs:
- job: Check_Dependency_Status
  steps:
  - script: echo "Verifying if both Pipeline A and B succeeded"
    displayName: 'Check A & B status'
    condition: |
      and(
        eq(resources.pipeline.A.status, 'Succeeded'),
        eq(resources.pipeline.B.status, 'Succeeded')
      )
- job: Execute_C
  dependsOn: Check_Dependency_Status
  condition: succeeded()
  steps:
  # 此处添加Pipeline C的实际任务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 03:22:42