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

如何配置GitHub Actions仅对deploy-build作业启用环境审批?

解决办法

核心问题是你给三个作业都绑定了开启审批的DEV环境,所以每个作业都会触发审批流程。要实现仅deploy-build需要审批,只需要调整作业的环境绑定策略即可,有两种常见方案:

方案一:仅给部署作业绑定需要审批的环境

直接移除build-latest和unit-tests-and-cdknag-execution作业的environment配置,只保留deploy-build的环境绑定。这样前两个作业会直接运行,只有部署环节会触发DEV环境的审批。

修改后的工作流示例:

name: .NET Lambda Deployment
on:
  pull_request:
    branches: [ dev ]
    types: [ closed ]

jobs:
  build-latest:
    runs-on: ubuntu-latest
    # 移除environment配置,直接运行
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      # 其他构建步骤...

  unit-tests-and-cdknag-execution:
    runs-on: ubuntu-latest
    # 移除environment配置,直接运行
    needs: [build-latest]
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      # 其他测试步骤...

  deploy-build:
    runs-on: ubuntu-latest
    environment: DEV # 仅该作业绑定需要审批的环境
    needs: [build-latest, unit-tests-and-cdknag-execution]
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      # 其他部署步骤...

方案二:拆分环境,给非部署作业用无审批环境

如果前两个作业需要使用环境变量或环境相关配置,但不想触发审批,可以在GitHub仓库的「Settings -> Environments」中创建一个新环境(比如DEV-build),不要开启审批,然后让build-latest和unit-tests-and-cdknag-execution绑定这个新环境,deploy-build继续绑定带审批的DEV环境。

修改后的工作流示例:

name: .NET Lambda Deployment
on:
  pull_request:
    branches: [ dev ]
    types: [ closed ]

jobs:
  build-latest:
    runs-on: ubuntu-latest
    environment: DEV-build # 绑定无审批的构建环境
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      # 其他构建步骤...

  unit-tests-and-cdknag-execution:
    runs-on: ubuntu-latest
    environment: DEV-build # 绑定无审批的构建环境
    needs: [build-latest]
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      # 其他测试步骤...

  deploy-build:
    runs-on: ubuntu-latest
    environment: DEV # 绑定带审批的部署环境
    needs: [build-latest, unit-tests-and-cdknag-execution]
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      # 其他部署步骤...

注意事项

  • 如果原来的DEV环境有作业需要的变量/密钥,方案一中可以将这些配置移到仓库级别的「Secrets and variables -> Actions」中,或者方案二中复制到新创建的DEV-build环境里。
  • 确保deploy-build作业通过needs字段依赖前两个作业,这样只有前两个作业成功完成后,才会触发部署的审批流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:22:35