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

如何实现stage内先执行其他job再触发deployment job审批

问题结论

该需求完全可以实现。

问题原因

你当前遇到审批提前触发的核心原因是:同一Stage下的Job如果没有显式配置依赖关系,Azure DevOps会在Stage启动初始化阶段并行调度所有Job,同时提前校验所有Job关联的受保护资源(配置了审批规则的Environment就属于受保护资源范畴),因此会出现job1还未开始执行,就先弹出环境审批的现象。

修复方案

给deployment Job显式添加对job1的依赖声明,强制deployment Job等待job1所有步骤执行完成后,才会进入自身的调度校验流程,此时触发的环境审批就完全符合你的预期。

修复后的流水线配置参考如下:

- stage: 1
  variables:
    - group: global
  jobs:
    - job: 'job1'
      steps:
        - task: DownloadPipelineArtifact@2
          ...

        - task: ExtractFiles@1
          ...

        - script: |
            ...

    - deployment:
      dependsOn: job1 # 显式声明依赖job1,等job1执行完成后才会启动当前部署Job
      environment: DEV
      strategy:
        runOnce:
          deploy:
            steps:
              - script: |
                  ...

补充说明:默认配置下只有job1所有任务执行成功,才会进入deployment Job的审批流程。如果你需要无论job1执行成功还是失败,只要它运行结束就触发环境审批,可以在deployment Job层级额外添加condition: always()配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 14:27:33