PR 的 build 任务连续失败 3 次,作者以「本地能过」为由让管理员强制合并。第二天主干上有 6 个 PR 全部构建失败,报 cannot find symbol。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,分支保护只要求评审通过,没要求状态检查通过。管理员有跳过权限,紧急时就用。
「CI 失败强合并」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。报错里带路径的,先去看那个路径在不在、权限对不对。
gh api repos/o/r/branches/main/protection --jq '.required_status_checks' gh pr checks 142
同一份配置存在多处的,先确认改的是被加载的那一份。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
具体做法是,开启 required status checks 构建失败禁止合并;管理员跳过必须填写原因并通知全组;CI 失败先看日志定位 不要用本地能过来解释;主干失败时优先回滚 不要在上面继续叠。
最后用这个标准收尾,构建失败的 PR 无法合并,主干连续一周没有出现构建失败。
