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

Azure DevOps流水线配置Manual Validation任务后未触发审批直接执行部署如何解决

问题根因

你在Prod阶段下定义了两个独立Job:WaitForValidation(包含手动审批任务)和模板展开后的Deploy部署作业。Azure DevOps 流水线中,同一阶段下没有显式配置依赖关系的Job默认会并行执行,因此审批任务还未触发人工操作,部署作业就已经自动启动,和Manual Validation任务的放置位置无关。

修复方案

你只需要给部署作业显式配置依赖关系,要求它必须等审批作业执行成功后再启动即可,修改后的阶段配置如下:

- stage: Prod
  dependsOn: QA
  condition: and(succeeded('QA'), eq(variables['Build.SourceBranch'], 'refs/heads/release'))
  jobs:
    - job: WaitForValidation
      pool: server
      displayName: Wait for approval
      timeoutInMinutes: 4320
      steps:
        - task: ManualValidation@0
          timeoutInMinutes: 1440 # 任务超时时间为1天
          inputs:
            notifyUsers: |
              one@email.com
              other@email.com
            instructions: '请审批生产环境部署申请'
    # 给模板引用的部署作业添加依赖配置
    - template: build-and-deploy-stage.yml
      parameters:
        targetEnv: 'Prod'
        dataset: 'prod'
        token: $(deploymentTokenProd)
      dependsOn: WaitForValidation

疑问解答

Manual Validation 并非只能放在阶段末尾才能生效,它可以放置在任意Job的任意步骤位置,只要配置好上下游作业/阶段的依赖关系,就能正常起到暂停流水线、等待人工审批的作用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:06:03