如何在GitHub Action部署工作流中添加审批流程并发送审批通知邮件?
实现部署前审批与邮件通知的方案
步骤1:配置GitHub环境审批规则
先在仓库的「Settings」→「Environments」中创建名为dev的环境,开启「Required reviewers」并添加指定审批人。只有审批人通过后,部署任务才会执行。
步骤2:修改工作流文件
调整原工作流的任务结构,合并重复构建步骤,添加邮件通知和审批触发逻辑:
name: DEV Workflow on: push: branches: [ dev ] pull_request: branches: [ dev ] jobs: build-and-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up JDK 1.8 uses: actions/setup-java@v1 with: java-version: '1.8' distribution: 'adopt' cache: maven - name: Build with Maven run: mvn clean install - name: Unit Testing run: echo "执行单元测试逻辑" notify-approver: needs: build-and-test runs-on: ubuntu-latest steps: - name: 发送审批通知邮件 uses: actions/send-mail@v1 with: server_address: ${{ secrets.SMTP_SERVER }} server_port: ${{ secrets.SMTP_PORT }} username: ${{ secrets.SMTP_USER }} password: ${{ secrets.SMTP_PASSWORD }} subject: 【DEV环境部署待审批】代码构建完成,请确认部署 body: | 代码已完成构建与单元测试,请前往以下链接完成部署审批: ${{ github.event.repository.html_url }}/actions/runs/${{ github.run_id }} to: ${{ secrets.APPROVER_EMAIL }} from: GitHub Actions <${{ secrets.SMTP_USER }}> deploy-dev: needs: notify-approver runs-on: ubuntu-latest environment: dev # 关联配置好的dev环境,触发审批流程 steps: - uses: actions/checkout@v2 - name: Set up JDK 1.8 uses: actions/setup-java@v1 with: java-version: '1.8' distribution: 'adopt' cache: maven - name: Build with Maven run: mvn clean install - name: Deploy to DEV run: echo "执行DEV环境部署逻辑"
步骤3:配置GitHub Secrets
在仓库的「Settings」→「Secrets and variables」→「Actions」中添加以下密钥:
SMTP_SERVER:邮件服务器地址(如smtp.qq.com)SMTP_PORT:邮件服务器端口(如587)SMTP_USER:发件人邮箱账号SMTP_PASSWORD:邮箱授权码(非登录密码)APPROVER_EMAIL:审批人邮箱地址
核心逻辑说明
- 合并原工作流中重复的构建步骤,避免冗余执行
notify-approver任务在构建测试完成后触发,自动向审批人发送包含工作流链接的邮件deploy-dev任务关联了配置好的dev环境,必须等待审批人在GitHub页面确认通过后,才会执行部署操作
内容的提问来源于stack exchange,提问作者Niladri Dey
相关产品推荐
相关产品推荐

