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. 审批时设置变量实现跳过
当流水线运行到审批环节时:
- 进入审批详情界面,切换到变量选项卡
- 添加自定义变量(如
shouldSkipStage3或skipStage3),将其值设为true - 点击批准按钮
此时流水线会读取变量值,满足阶段的condition判断,目标阶段会被标记为skipped,最终流水线状态为:
[1. completed] --> [2. completed] --> [3. skipped]
内容的提问来源于stack exchange,提问作者evilmandarine
相关产品推荐
相关产品推荐

