Skip to content

perf(ci): prebake pinned Rust toolchain - #228

Merged
Bnjoroge1 merged 1 commit into
mainfrom
Bnjoroge/ci-prebaked-rust
Sep 5, 2026
Merged

Bnjoroge1 merged 1 commit into
mainfrom
Bnjoroge/ci-prebaked-rust

Conversation

@Bnjoroge1

@Bnjoroge1 Bnjoroge1 commented Sep 5, 2026 •

Copy link
Copy Markdown
Collaborator

Bakes the repository-pinned Rust 1.97 toolchain into stock and official runner goldens, verifies the exact toolchain plus rustfmt/clippy, removes redundant CI rustup and apt installs, and enables Cargo caching for property jobs. Also refreshes the stale dtolnay action pin required by zizmor.


Summary by cubic

Prebakes the repository-pinned Rust 1.97 toolchain into stock Ubuntu and official runner goldens so CI jobs no longer install it on every run.

  • Removes per-job rustup and apt installs in CI workflows and enables Cargo caching on additional jobs.
  • Official runner snapshots now receive the pinned toolchain layers while their existing packages are left untouched.
  • Toolchain verification now checks rustc, rustfmt, and clippy via rustup instead of only the cargo binary.
  • The curated Rust version moves from a hardcoded 1.88.0 to rust_toolchain_version in versions.toml, so bumping it invalidates the golden fingerprint.
  • Refreshes the stale dtolnay/rust-toolchain action pin required by zizmor.

Written for commit 341cd65. Summary will update on new commits.

Review in cubic

@pullfrog

pullfrog Bot commented Sep 5, 2026

Copy link
Copy Markdown

New pull request. Leaping into action...

Pullfrog  | View workflow run | via Pullfrog | 𝕏

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@Bnjoroge1
Bnjoroge1 merged commit 17b331d into main Sep 5, 2026
5 of 11 checks passed
Bnjoroge1 added a commit that referenced this pull request Sep 10, 2026
Three independent regressions had CI red for five days and the golden
bake dead for a month.

1. f84e3c7 deleted SMOLVM_MAX_IMAGE_BYTES from both bake steps while
   only editing comments. The pinned runner-large base unpacks to
   ~17 GiB via docker save, over smolvm's 8 GiB default local-archive
   cap, so every build-golden attempt died in smolvm create before
   extracting a byte. Restored on both arch steps.

2. 7f18e8a repointed the aarch64 golden from macos-14 to
   [self-hosted, macOS, ARM64]. No runner has ever carried those
   labels, so the job was never dispatched and GitHub cancelled it at
   the 24h ceiling on every run since. Back to hosted Apple Silicon
   with the TSI net backend the hosted path requires.

3. #228 removed the toolchain and lld installs from ci.yml expecting a
   prebaked golden, but 1 and 2 meant no such golden was ever built.
   Jobs land on a runner with cargo only under /root/.cargo/bin and
   fail with 'cargo: command not found'. Restored the setup steps,
   ordered before rust-cache so its rustc -vV probe succeeds.

Also adds timeout-minutes to both golden jobs so an undispatched job
costs minutes instead of a day, and scopes the x86_64 bake to
smolvm-host.
Bnjoroge1 added a commit that referenced this pull request Sep 13, 2026
Three independent regressions had CI red for five days and the golden
bake dead for a month.

1. f84e3c7 deleted SMOLVM_MAX_IMAGE_BYTES from both bake steps while
   only editing comments. The pinned runner-large base unpacks to
   ~17 GiB via docker save, over smolvm's 8 GiB default local-archive
   cap, so every build-golden attempt died in smolvm create before
   extracting a byte. Restored on both arch steps.

2. 7f18e8a repointed the aarch64 golden from macos-14 to
   [self-hosted, macOS, ARM64]. No runner has ever carried those
   labels, so the job was never dispatched and GitHub cancelled it at
   the 24h ceiling on every run since. Back to hosted Apple Silicon
   with the TSI net backend the hosted path requires.

3. #228 removed the toolchain and lld installs from ci.yml expecting a
   prebaked golden, but 1 and 2 meant no such golden was ever built.
   Jobs land on a runner with cargo only under /root/.cargo/bin and
   fail with 'cargo: command not found'. Restored the setup steps,
   ordered before rust-cache so its rustc -vV probe succeeds.

Also adds timeout-minutes to both golden jobs so an undispatched job
costs minutes instead of a day, and scopes the x86_64 bake to
smolvm-host.
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