GitHub Actions如何配置Build成功且prod分支触发Deploy工作流
GitHub Actions Deploy工作流双条件触发配置方法
你可以通过workflow_run触发事件搭配作业级条件判断实现需求,具体配置逻辑如下:
- 首先将Deploy工作流的触发事件设置为监听Build工作流的完成事件
- 在部署作业上添加条件校验,同时满足「Build执行成功」「代码所处分支为prod」两个要求时才运行后续步骤
完整配置示例:
name: Deploy on: workflow_run: workflows: ["Build"] # 此处填写要监听的工作流名称,需和Build工作流配置里的name字段完全一致 types: [completed] # 监听Build工作流执行完成的节点 jobs: deploy: runs-on: ubuntu-latest # 核心判断条件:Build执行结果为成功 + 触发Build运行的分支是prod if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'prod' }} steps: - name: 拉取对应版本代码 uses: actions/checkout@v4 with: ref: ${{ github.event.workflow_run.head_sha }} # 拉取Build成功时对应的commit代码,避免分支代码版本不一致 # 下方补充你实际需要的部署步骤即可
避坑提示:不要直接在
workflow_run配置块下添加branches: [prod]规则,该规则的匹配逻辑是「Deploy工作流文件本身存在于prod分支时才启用监听」,不会校验Build工作流的实际运行分支,会导致非prod分支的Build成功时误触发Deploy,分支判断必须写在job的if条件中才生效。
内容的提问来源于stack exchange,提问作者karkir subu
相关产品推荐
相关产品推荐

