Repository navigation
Let Summary pass when the VM matrix is skipped - #791
Merged
Merged
Conversation
Making Summary run on every PR, so it can be a required check, means it now runs for PRs where the `changes` job skips the VM matrix. Two of its steps consume that matrix's artifacts, and `analyze_ci_vms.py` exits non-zero on an empty directory. So on the first docs-only PR after that change - #785, which touches only `.github/workflows/claude*.yml` - the gate reported: Changes pass actionlint pass Lint skipping Host-*/Container-* skipping Summary FAIL <- at "Analyze CI run" Every gating job behaved correctly and the required check still failed. A required check that cannot pass for a whole class of PR blocks that class outright, which is worse than the hole it replaced. Both artifact steps now carry the same `changes` gate the matrix does. Summary's own "fail if a gating job did not succeed" step is unchanged and still treats skipped as non-failure and failure as failure. Tested (red first): $ git checkout .github/workflows/ci.yml # drop the gate $ cargo nextest run --test test_ci_workflow_coverage -E 'test(summary_artifact_steps)' FAIL summary_artifact_steps_are_gated_on_the_changes_job $ # restore 11 tests run: 11 passed, 0 skipped $ actionlint -shellcheck= -> clean $ cargo fmt --check -> clean
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe Summary job now processes VM artifacts and CI results only when the changes job reports code changes. A coverage test verifies the condition for both affected steps. ChangesCI Summary gating
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
8 tasks
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.
Making
Summaryrun on every PR (#787) so it can be a required check means it now runs for PRs where thechangesjob skips the VM matrix. Two of its steps consume that matrix's artifacts, andanalyze_ci_vms.pyexits non-zero on an empty directory.So the very first docs-only PR after #787 merged — #785, which touches only
.github/workflows/claude*.yml— produced:Every gating job behaved exactly as designed and the required check still failed. A required check that cannot pass for a whole class of PR blocks that class outright — worse than the hole #787 closed.
Both artifact steps now carry the same
changesgate the matrix does. Summary's own "fail if a gating job did not succeed" step is untouched and still treats skipped as non-failure, failure as failure.Test evidence (red first)
actionlint -shellcheck=andcargo fmt --checkboth clean.The new guard asserts it found at least two artifact-consuming steps before checking them, so a rename cannot make it pass vacuously.
Summary by CodeRabbit
Bug Fixes
Tests