Skip to content

task(ci): optimize PR builds further - #674

Merged
ndizazzo merged 10 commits into
mainfrom
chore/ci-pr-optimization-test
May 26, 2026
Merged

task(ci): optimize PR builds further#674
ndizazzo merged 10 commits into
mainfrom
chore/ci-pr-optimization-test

Conversation

@ndizazzo

@ndizazzo ndizazzo commented May 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

This PR reduces pull request CI time and improves CI reliability by splitting the slow Linux/macOS CPU artifact path from test fanout, making Rust cache restore failures non-fatal, avoiding unnecessary Windows Node release addon builds, and removing Docker image builds from PR workflows.

What changed

  • Added early Linux and macOS CPU artifact producer jobs so downstream smoke and SDK jobs can start sooner instead of waiting behind serialized test work.
  • Split Linux SDK/API, Skippy, unit, protocol, and Skippy smoke coverage into parallel test-group jobs.
  • Wired Linux Cargo jobs through RUSTC_WRAPPER=sccache and added sccache stats reporting so cache usage is visible in logs.
  • Made Swatinem/rust-cache restore failures non-fatal in PR workflows; cache restore outages now degrade to cold builds instead of failing required checks.
  • Added Docker Buildx cache initially, then removed PR Docker builds entirely because Docker validation is moving outside this repo’s PR CI.
  • Gated the expensive Windows Node SDK release addon build behind direct release-relevant inputs while keeping the fast Windows Node SDK cargo check coverage.
  • Updated CI documentation in ci/ci.md to match the new PR workflow topology and Docker ownership.
  • Cleaned up workflow lint issues found by actionlint.

Performance notes

  • Baseline failed PR Builds run 26383941773: 32.80m wall clock, with Windows CUDA failing during Rust cache restore.
  • Cache-resilience run 26384942371: passed, and Windows CUDA completed in 1.27m, but total wall clock was 35.07m because Windows CPU/ROCm became the critical path.
  • Windows Node gating run 26386317939: passed; Windows CPU execution improved from 34.82m to 22.40m by skipping the duplicate Node release addon build on workflow-only changes. Wall clock was still 36.68m due to runner queue time.
  • Removing PR Docker builds eliminates a separate PR Docker check that recently cost about 18.5m on this branch.

Validation

  • actionlint
  • git diff --check
  • Workflow/action YAML parse validation
  • Duplicate workflow step ID validation
  • PR trigger policy validation
  • LSP diagnostics for .github/workflows
  • cargo run -p xtask -- repo-consistency release-targets
  • cargo run -p xtask -- repo-consistency ci-crate-lists

Notes

The latest PR head after Docker removal schedules only PR Builds and PR Quality Checks; no new PR Docker Build run was created for that head.

@ndizazzo ndizazzo self-assigned this May 25, 2026
@i386

i386 commented May 25, 2026

Copy link
Copy Markdown
Collaborator

I super appreciate this work @ndizazzo

@ndizazzo
ndizazzo force-pushed the chore/ci-pr-optimization-test branch from 8234dbb to 022584b Compare May 25, 2026 21:15
@ndizazzo
ndizazzo force-pushed the chore/ci-pr-optimization-test branch from d48b5d3 to 14af3d9 Compare May 25, 2026 23:20
@ndizazzo
ndizazzo force-pushed the chore/ci-pr-optimization-test branch from 14af3d9 to bc79c65 Compare May 26, 2026 00:04
@ndizazzo ndizazzo changed the title task(ci): attempt to optimize PR builds further WIP task(ci): optimize PR builds further May 26, 2026
@ndizazzo
ndizazzo merged commit d50a468 into main May 26, 2026
39 of 40 checks passed
@ndizazzo
ndizazzo deleted the chore/ci-pr-optimization-test branch May 26, 2026 00:21
michaelneale added a commit that referenced this pull request May 26, 2026
* origin/main:
  task(ci): optimize PR builds further (#674)
  Fix Metal benchmark cross-arch build (#679)
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.

2 participants