如何配置CI/CD工作流,仅在PR合并到master时触发部署?
调整GitHub CI/CD工作流以满足PR检查与合并后部署需求
当前工作流代码
我创建了一个名为ci-cd的工作流,代码如下:
name: WORKFLOW CONTROLLER [CI/CD] on: [workflow_dispatch, pull_request] jobs: linters: uses: ./.github/workflows/linters.yml deploy: needs: linters uses: ./.github/workflows/githubpages.yml
需求说明
- 当有pull_request打开时,自动运行linters进行检查,检查通过后允许将PR合并到master分支
- 当PR合并到master分支时,自动触发github pages部署工作流
调整后的工作流配置
要实现需求,需对触发条件和作业执行逻辑做如下修改:
name: WORKFLOW CONTROLLER [CI/CD] on: workflow_dispatch: pull_request: branches: [master] types: [opened, synchronize, reopened] push: branches: [master] jobs: linters: if: github.event_name == 'pull_request' uses: ./.github/workflows/linters.yml deploy: if: github.event_name == 'push' uses: ./.github/workflows/githubpages.yml
关键调整说明
- 扩展触发事件:新增
push事件监听master分支,捕获PR合并后的推送动作 - 作业条件控制:
- 给
linters作业添加条件,仅在pull_request事件时执行,避免部署阶段重复运行检查 - 给
deploy作业添加条件,仅在push事件时执行,无需依赖linters作业(PR合并前已完成检查)
- 给
- PR合并保护设置:在GitHub仓库的分支保护规则中,配置master分支要求
linters作业通过才能合并,确保PR必须通过lint检查后才能合并到master分支
内容的提问来源于stack exchange,提问作者THIAGO DE BONIS
相关产品推荐
相关产品推荐

