Skip to content

[WIP] Reduce total CI duration#536

Draft
elle-j wants to merge 13 commits into
mainfrom
lj/speedup-ci
Draft

[WIP] Reduce total CI duration#536
elle-j wants to merge 13 commits into
mainfrom
lj/speedup-ci

Conversation

@elle-j
Copy link
Copy Markdown
Contributor

@elle-j elle-j commented May 29, 2026

Description

Current changes:

Change Now Before
Per-target build sub-workflows
  • Split umbrella reusable-build.yml into reusable-build-{linux,macos,windows,wasm}.yml.
  • Consumers can wait on a specific target and start earlier instead of blocking on the whole matrix.
  • E.g. our longer e2e tests now start earlier.
  • Getting a reusable build depended on all builds completing.
  • Even if e.g. a macOS build is cached, the waiting workflow with macOS runners could be queued for a long time just to get the status and cache of the other workflow, since macOS runners are more scarce than e.g. ubuntu.
Bottleneck macOS Intel only running on main macOS Intel runners are 2-3× slower than macOS ARM for the contract compilation tests. This build is now excluded from the matrix for PR runs, and only included for pushes to main. Ran on each PR, being the bottleneck.
Hardhat unblocked from differential tests Starts as soon as the required test job succeeds, using the reusable Linux build. Started after the differential tests succeeded in order to reuse the linux build.
Wasm tests use cached artifacts test-wasm.yml uses the reusable Wasm build. Ran its own duplicate build.
Faster LLVM downloads get-llvm/action.yml uses more efficient version detection. Building resolc now takes ~2min (~6 min on macOS intel). Building resolc took ~8-13min (~26 min on macOS intel).
Conditionally skip workflows
  • Most workflows are skipped for doc-only updates.
  • Tooling-only updates trigger only the respective tooling test (Hardhat), apart from the required test job.
Conditionally skipped for md-only changes. Tooling-only changes also ran e.g. test-wasm.yml and differential-tests.yml.

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