DO NOT MERGE: prove the ci gate fails - #33
Conversation
A trailing slash in .gitignore matches a directory only, so a symlink of the same name is still picked up by `git add -A`. Demonstrated: pattern 'node_modules/' -> staged: 1 pattern 'node_modules' -> staged: 0 66bb72b untracked the symlink but left the pattern alone, so the very next `git add -A` — in f866f14, the review-fix commit — re-added it, and it reached main. The link points at an absolute path in a local worktree, so a fresh clone gets a dangling node_modules. Untracking only sticks once the pattern does, so both happen here. The other never-tracked tool directories lose their trailing slashes for the same reason. Only the index entry is removed; the local symlink stays.
Branch protection matches a status check by its literal context string, and
a matrix job reports as "<job-id> (<matrix values>)". The required check on
main is "test (22)", so the day the matrix moves off Node 22 that context
stops being reported entirely — pull requests block forever while the
ruleset still shows a green, satisfied rule. The failure mode is silence,
which is the hardest kind to diagnose.
An aggregate job named "ci" fixes the context in place. It gates on
needs.test.result, which is success only when every matrix leg succeeded, so
the matrix can grow without touching branch protection.
always() rather than !cancelled(): a check that never reports looks
identical to a blocked branch, so a cancelled run has to fail loudly.
needs.test.result reaches the shell through env rather than ${{ }}
interpolation, so the value cannot be expanded as shell syntax.
The required context must move from "test (22)" to "ci" once this is on
main; until then this job runs without being required.
Throwaway branch. Adds a deliberately failing step to the test job so the aggregate ci job can be observed reporting failure. Not for merge.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
💤 Files with no reviewable changes (1)
📜 Recent review details⏰ Context from checks skipped due to timeout. (1)
🔇 Additional comments (2)
Summary by CodeRabbit
WalkthroughThe workflow adds a deliberate test failure and a stable ChangesCI status stabilization
Ignore rule cleanup
Estimated code review effort: 2 (Simple) | ~10 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Purpose served: the aggregate |
Throwaway. Verifies the aggregate
cicheck reports failure whentestfails, beforecibecomes the required check on main. Will be closed.