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

Azure Pipelines(YAML)中能否跳过待审批阶段而非拒绝?

在Azure Pipelines YAML中跳过需审批的阶段而非拒绝

默认情况下,拒绝需审批的阶段会导致该阶段及流水线显示错误状态。要实现跳过阶段(显示skipped),可以通过审批时设置自定义变量+阶段条件判断的方式实现,具体操作如下:

实现步骤

1. 修改YAML流水线配置

在需要跳过的阶段(如Stage3)中添加condition条件,判断自定义变量(比如shouldSkipStage3)是否为true;同时保留阶段的审批要求(可通过关联环境或手动验证任务实现)。

示例1:关联审批环境的配置

stages:
- stage: Stage1
  jobs:
  - job: Job1
    steps:
    - script: echo "Stage 1 completed"
- stage: Stage2
  jobs:
  - job: Job2
    steps:
    - script: echo "Stage 2 completed"
- stage: Stage3
  dependsOn: Stage2
  # 当变量shouldSkipStage3为true时跳过该阶段
  condition: ne(variables['shouldSkipStage3'], 'true')
  jobs:
  - deployment: DeployToProd
    # 关联已配置审批人员的Azure DevOps环境
    environment: Production
    strategy:
      runOnce:
        deploy:
          steps:
          - script: echo "Stage 3 is running"

示例2:使用手动验证任务的配置

stages:
- stage: Stage1
  jobs:
  - job: Job1
    steps:
    - script: echo "Stage 1 completed"
- stage: Stage2
  jobs:
  - job: Job2
    steps:
    - script: echo "Stage 2 completed"
# 单独的审批阶段
- stage: ApprovalCheck
  dependsOn: Stage2
  jobs:
  - job: ManualApproval
    pool: server
    steps:
    - task: ManualValidation@0
      inputs:
        notifyUsers: '审批人员邮箱'
        instructions: '如需跳过Stage3,请添加变量skipStage3=true后批准;直接批准则执行Stage3'
        onTimeout: 'reject'
# 目标阶段
- stage: Stage3
  dependsOn: ApprovalCheck
  condition: ne(variables['skipStage3'], 'true')
  jobs:
  - job: Job3
    steps:
    - script: echo "Stage 3 is running"

2. 审批时设置变量实现跳过

当流水线运行到审批环节时:

  1. 进入审批详情界面,切换到变量选项卡
  2. 添加自定义变量(如shouldSkipStage3或skipStage3),将其值设为true
  3. 点击批准按钮

此时流水线会读取变量值,满足阶段的condition判断,目标阶段会被标记为skipped,最终流水线状态为:

[1. completed] --> [2. completed] --> [3. skipped]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:13:01