Azure DevOps如何仅在审批通过后触发构建而非自动/手动触发?
解决Azure DevOps构建需审批后运行的配置问题
你的YAML配置未生效的核心原因是:普通的Build Job不会触发环境的审批检查,只有将作业定义为**部署作业(Deployment Job)**并关联目标环境,才能触发你在Environment中设置的审批者与检查。
另外,若要实现“仅当代码变更审批后才运行构建,禁止自动/手动触发”,需要结合以下两点配置:
1. 调整YAML为部署作业,关联目标环境
将原有的普通steps替换为部署作业,明确指定关联的环境名称。修改后的YAML示例:
trigger: none # 关闭自动触发,避免代码提交直接启动构建 pool: vmImage: ubuntu-latest jobs: - deployment: DeployToTest displayName: '部署到Test环境' environment: test # 关联你创建的名为test的环境 strategy: runOnce: deploy: steps: - script: echo Hello, world! displayName: 'Run a one-line script'
2. 配置分支审批(确保代码变更需审批后才触发构建)
若你的需求是“代码变更(如PR合并到mainQA分支)需先经审批,再触发构建”,还需在分支策略中设置:
- 进入项目的Repos > 分支,找到mainQA分支,点击“分支策略”
- 添加“审批者”检查,要求PR合并前必须经过指定人员审批
- 此时将trigger改回
- mainQA,这样只有审批通过的PR合并到mainQA后,才会触发构建,且构建启动前会触发环境的审批检查
关键说明
- 环境的审批检查仅对部署作业生效,普通Build Job无法触发该检查
- 若完全禁止手动触发构建,可在管道设置中关闭“允许手动触发”选项,仅保留分支触发+分支审批+环境审批的链路
内容的提问来源于stack exchange,提问作者Salman
相关产品推荐
相关产品推荐

