如何配置GitHub Actions,在CI指定步骤完成前禁止合并Pull Request
如何配置GitHub Actions,在CI指定步骤完成前禁止合并Pull Request
嗨!我来帮你搞定这个需求~你想要实现的「PR必须等build-and-push-image步骤成功才能合并」的效果,其实可以通过分支保护规则 + GitHub Actions 流水线的组合来实现,具体分两步操作:
一、确保你的GitHub Actions流水线能在PR触发时正常执行目标Job
看你提供的YAML配置,已经针对pull_request事件做了触发设置(监听master分支的PR,且仅当API目录或该流水线文件变更时触发),这部分没问题。你只需要确保build-and-push-image这个Job的完整配置是有效的——比如它的运行环境、构建/推送逻辑都能正常执行,这样PR触发时它才会被正确启动并返回状态结果。
二、设置仓库分支保护规则,强制要求目标Job通过才能合并
这是关键一步,通过GitHub仓库的分支保护规则,把你的BUILD: API(即build-and-push-image的Job名称)设为PR合并的前置条件:
- 打开你的GitHub仓库,点击顶部导航栏的「Settings」(设置)
- 在左侧菜单找到「Branches」(分支)选项
- 在「Branch protection rules」区域,点击「Add rule」(添加规则);如果已经有master分支的保护规则,直接点击规则右侧的编辑按钮即可
- 在「Branch name pattern」输入框中填写
master(因为你的PR是合并到这个分支) - 找到「Require status checks to pass before merging」选项,勾选它
- 在下方的「Search for status checks」输入框里,输入你的Job名称
BUILD: API,然后选中出现的对应状态检查项 - 可选但推荐:勾选「Require branches to be up to date before merging」,确保PR分支和master分支同步,避免合并冲突
- 最后点击「Create」(或「Save changes」)保存规则
这样设置完成后,只要你的PR对应的BUILD: API Job执行失败,GitHub就会锁定PR的合并按钮,明确提示需要通过该状态检查才能合并;只有当这个Job成功运行完成后,PR才能被正常合并。
备注:内容来源于stack exchange,提问作者Niranjan




