fix(ci): 恢复稳定的 "Dogfood Regression Gate" 必需检查名 — 全仓 PR 死锁修复 - #3644
Merged
Conversation
…name (#3622 follow-up) INCIDENT: every open PR in the repo is BLOCKED — mergeable, all checks green, merge button dead. Root cause: #3622 sharded the dogfood job 2-way, so its checks now publish as "Dogfood Regression Gate (1/2)" / "(2/2)". Branch protection still requires the bare context "Dogfood Regression Gate", which no job emits anymore — the requirement can never be satisfied. #3622's own comment called for updating branch protection; that step never happened. Fix keeps the contract in CODE rather than in protection settings: a tiny aggregator job carrying the stable name, gated on the matrix's aggregate result. A future shard-count change therefore cannot deadlock the repo again. `if: always()` + result inspection so a legitimately skipped matrix (filter says no core paths changed) still satisfies the gate. Verified: workflow YAML parses; job graph has dogfood-gate needs: dogfood with name "Dogfood Regression Gate". Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
事故:全仓所有开放 PR 卡死
复现:任取一个开放 PR,
mergeable: MERGEABLE、所有 check 绿、mergeStateStatus: BLOCKED,合并按钮不可用(实测 #3637/#3638/#3639/#3640/#3401 全中)。根因:#3622 把 dogfood job 分片成 2 路矩阵,check 名变为
Dogfood Regression Gate (1/2)/(2/2);而分支保护要求的是裸名Dogfood Regression Gate——现在没有任何 job 产出这个名字,该必需项永远无法满足。#3622 自己的注释写了"若分支保护要求该名,必须更新为两个分片名",但那步没有执行。修法:契约留在代码里,不动保护设置
新增一个极小的聚合 job 承载稳定名
Dogfood Regression Gate,needs: dogfood,按矩阵聚合结果判定:success/skipped(filter 判定未触及 core 路径时矩阵合法跳过)→ 通过;好处:将来再改分片数不会二次死锁(不必每次同步改保护设置),且无需管理员改仓库配置。
合并说明
本 PR 修的正是"阻止一切合并"的那个门,存在鸡生蛋问题——需以管理员权限合入一次,此后所有 PR(含本 PR 之后的)恢复正常合并。
🤖 Generated with Claude Code