Skip to content

ci(lint): let every gate report instead of stopping at the first failure - #7306

Merged
proggeramlug merged 1 commit into
mainfrom
ci/7282-lint-gates-report-independently
Aug 3, 2026
Merged

ci(lint): let every gate report instead of stopping at the first failure#7306
proggeramlug merged 1 commit into
mainfrom
ci/7282-lint-gates-report-independently

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

One failing lint step hides every step after it. Before this change, 1 of 17 steps ran unconditionally.

This is not hypothetical — it is how four gates went unexecuted for 40+ commits

The public-baseline freshness check sits at step 8. While it was stale, everything below it never ran in CI at all:

step consequence
File size limit found red by hand (#7256)
GC store-site inventory found red by hand (#7273)
Address-classification audit found red by hand (#7273)
Moving-GC gate wiring #7253 added it to catch gates that cannot fail — and it was itself unreachable
GC matrix liveness gate never ran
Test registration (dark tests) already had !cancelled(), so it survived

Because lint is a required context, the visible effect was that every merge needed --admin and branch protection became theatre. The invisible effect was worse: six gates reporting nothing, indistinguishable from six gates passing.

The change

if: ${{ !cancelled() }} on all 11 gate steps. Setup steps (checkout, Node, Rust toolchain) still stop the job — there is nothing to gate without a toolchain.

The job still fails if any gate fails. This changes reporting, not strictness.

Why now

The benchmark artifact is expected to go stale repeatedly during the current optimization work — its only fix is a ~2-hour regeneration on a specific quiet host (#7282 tracks narrowing the trigger). Accepting a stale artifact is a reasonable trade; silently disarming six unrelated gates every time it happens is not.

CI-only. No behaviour change.

Summary by CodeRabbit

  • Bug Fixes

    • Improved validation reporting so all applicable quality checks run and report results, even when an earlier check fails.
    • Cancelled runs continue to stop promptly, while failures still cause the overall validation job to fail.
  • Documentation

    • Added release documentation describing the updated validation behavior and expected benchmark artifact staleness during optimization work.

@proggeramlug
proggeramlug merged commit 0062683 into main Aug 3, 2026
31 of 41 checks passed
@proggeramlug
proggeramlug deleted the ci/7282-lint-gates-report-independently branch August 3, 2026 12:15
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0e31503a-e32d-4fba-9318-4fc434528d37

📥 Commits

Reviewing files that changed from the base of the PR and between 024541a and f22d166.

📒 Files selected for processing (2)
  • .github/workflows/test.yml
  • changelog.d/7306-lint-gates-report-independently.md

📝 Walkthrough

Walkthrough

The lint workflow now runs independent validation gates unless the job is cancelled. Setup steps remain failure-blocking. A changelog entry documents the execution and reporting behavior.

Changes

Lint gate reporting

Layer / File(s) Summary
Independent gate execution
.github/workflows/test.yml, changelog.d/7306-lint-gates-report-independently.md
Lint gates now continue after earlier gate failures unless the workflow is cancelled. The changelog documents setup-step blocking, failure reporting, and benchmark freshness behavior.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

  • PerryTS/perry#7253: Introduced the gc_gate_wiring_check.py lint gate updated by this change.

Suggested reviewers: thehypnoo, jdalton, andrewtdiz

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/7282-lint-gates-report-independently

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant