提交修复PR后Github Action仍执行旧配置,PR验证失败无法合并怎么办?
解决方法
针对pull_request_target事件默认加载基础分支Workflow,导致修复PR无法通过验证的问题,可采用以下几种可行方案:
方案1:直接推送修复到主分支(需仓库权限)
若你拥有仓库直接推送权限,可跳过PR流程直接修复:
- 本地拉取主分支代码,将
.github/workflows/pr-verify.yml中的node-version: "16"修改为"18" - 提交修改并推送到主分支,后续所有PR的验证会自动使用Node.js 18版本,问题直接解决
方案2:临时豁免特定PR的验证
- 在主分支的
pr-verify.yml中,修改jobs.pr-verify.if条件,添加对修复PR的豁免:
把if: (github.event_name != 'pull_request_target' || !github.event.pull_request.draft) && github.event.pull_request.number != 123123替换成你的修复PR的实际编号 - 推送该修改到主分支,此时你的修复PR会跳过验证流程,可正常合并
- 合并完成后,将主分支的Workflow条件恢复原样,取消豁免
方案3:安装兼容Node.js 16的Renovate旧版本
在修复PR中同时修改两处内容:
- 将
node-version: "16"改为"18" - 将安装Renovate的命令改为指定兼容版本:
(Renovate 38+版本开始要求Node.js 18,37.x是支持Node.js 16的最后一个大版本)npm i -g renovate@37.x
这样即使当前Workflow使用Node.js 16运行,也能成功安装并通过验证,待PR合并后,后续验证会自动使用Node.js 18和最新Renovate版本
内容的提问来源于stack exchange,提问作者guettli
相关产品推荐
相关产品推荐

