Skip to content

Static checks: run the checks as background steps - #3739

Closed
reaperhulk wants to merge 1 commit into
mainfrom
claude/faster-static-checks
Closed

reaperhulk wants to merge 1 commit into
mainfrom
claude/faster-static-checks

Conversation

@reaperhulk

@reaperhulk reaperhulk commented Oct 30, 2026 •

Copy link
Copy Markdown
Member

The Static checks job took 42 s on the last merge-queue run (41004903518): 18 s checking out the repository, then 20.6 s running its 15 checks one after another. Their CPU time is about 33 s, which spread over the runner's four cores is about 8 s.

Change

  • Each check is now a background: true step, and a wait-all: step at the end fails the job if any of them failed. Each check keeps its own step and log.
  • At most 10 background steps run at once and the rest queue, so the steps are listed slowest first:
    • run_unit_tests.py
    • check_lean_speed.py
    • check_variants.py
    • check_lean_imports.py
    • check_mcdt.py
    • …the quick checks last.

The checkout stays as it was. A sparse checkout that left out vectors/ made it slower: 25 s instead of 18 s, because it fetches each of this job's 27,000 files on demand.

Result

On this PR's run (41011468451), the job took 34 s instead of 42 s:

Before After
Checks, start to finish 20.6 s 13 s
Checkout 18 s 17 s

A step's own time now includes waiting for a core while the others run. For example, check_arch_gates.py shows 9 s instead of 0 s, so judge the change by the job's total time, not by single steps.

Testing

  • Every check and all-green passed in this PR's run.
  • Only ci.yml changes.

🤖 Generated with Claude Code

https://claude.ai/code/session_015ajQWwSSE6PJMaZ9NzWaSV

@reaperhulk reaperhulk changed the title Run the static checks at once Static checks: run the checks at once, and leave the test vectors out of the checkout Oct 30, 2026
@reaperhulk
reaperhulk force-pushed the claude/faster-static-checks branch from 24a8418 to 2d94121 Compare October 30, 2026 05:52
The static checks job ran its 15 checks one after another, 20.6 s of its
42 s. Their CPU time is about 33 s over the runner's four cores, so each
is now a background step, slowest first (at most 10 run at once, the rest
queue), and a wait-all at the end fails if any of them failed. Each keeps
its own step and log.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015ajQWwSSE6PJMaZ9NzWaSV
@reaperhulk
reaperhulk force-pushed the claude/faster-static-checks branch from 2d94121 to b128b68 Compare October 30, 2026 05:59
@reaperhulk reaperhulk changed the title Static checks: run the checks at once, and leave the test vectors out of the checkout Static checks: run the checks as background steps Oct 30, 2026
@reaperhulk
reaperhulk marked this pull request as draft October 30, 2026 06:02
@reaperhulk
reaperhulk marked this pull request as ready for review October 30, 2026 12:40
@reaperhulk reaperhulk closed this Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants