Skip to content

ci: run the single-runner gates on the arm linux runners - #210

Merged
agentjp merged 1 commit into
masterfrom
ci/arm-single-runner-gates
Aug 2, 2026
Merged

ci: run the single-runner gates on the arm linux runners#210
agentjp merged 1 commit into
masterfrom
ci/arm-single-runner-gates

Conversation

@agentjp

@agentjp agentjp commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Moves every gate job that runs on exactly one Linux runner and whose verdict is arch-invariant to ubuntu-24.04-arm.

Moved to arm64 — core.yml lint, coverage, msrv, deny, vet, release-yaml; repo.yml yaml, taplo, zizmor, typos, links; gui.yml checks, msrv. All thirteen install their tooling from taiki-e/install-action manifest entries that carry an aarch64 Linux asset, or compile it from crates.io.

Left on x64, with the mechanism at each runs-on

  • mutants, gui-mutants, wasm-mutants — taiki-e/install-action's cargo-mutants manifest has no aarch64 Linux asset (x86_64 linux-gnu / macOS / Windows only), and fallback: none turns a missing prebuilt into a hard failure.
  • wasm.yml gate and its msrv companion — the arm64 Ubuntu image ships Firefox and geckodriver but no Google Chrome or chromedriver, which two gate steps drive.
  • replay (libFuzzer binary pinned to x86_64-unknown-linux-gnu), pkg (runs the packaged x86_64 binary natively), plan, ci-ok, drive-mosaic (seconds-long glue), and the per-target matrices.

Other changes the move requires

  • release-yaml downloads cargo-dist's aarch64-unknown-linux-musl archive and verifies it against that asset's published sha256; version-freshness.yml re-checks the committed digest against the same asset.
  • The cargo-vet and YAML-tool cache keys gain runner.arch: both hold executables, and runner.os is Linux on x64 and arm64 alike.

Expected on this run: each moved job cold-starts once, since compiled-tool and rust-cache keys carry the arch. cargo-vet recompiles (~2 min) on its first arm run, then caches; the orphaned x64 entries age out in 7 days.

Durations against the survey baselines and the cache-store figure follow once the run completes.

Move every gate job that runs on exactly one Linux runner and whose verdict is
arch-invariant to ubuntu-24.04-arm: core.yml lint, coverage, msrv, deny, vet
and release-yaml; repo.yml yaml, taplo, zizmor, typos and links; gui.yml checks
and msrv. Measured on this repository's runs (2026-08-02), the arm runners
built the GUI legs in 208 s average against 301 s on ubuntu-latest at
comparable queue times.

release-yaml now downloads cargo-dist's aarch64-unknown-linux-musl archive and
verifies it against that asset's published sha256; version-freshness.yml
re-checks the committed digest against the same asset.

The cargo-vet and YAML-tool cache keys gain runner.arch: both entries hold
executables and runner.os is Linux on x64 and arm64 alike.

Jobs left on x64, each with its mechanism at the runs-on line: the three
advisory mutation jobs (taiki-e/install-action carries no aarch64 Linux
cargo-mutants asset, and fallback: none makes a missing prebuilt a hard
failure), the wasm gate and its msrv companion (the arm64 runner image ships
no Google Chrome or chromedriver, which two gate steps drive), replay (its
libFuzzer binary is pinned to x86_64-unknown-linux-gnu), and pkg (it runs the
packaged x86_64 binary natively).
@agentjp agentjp added the ci-full Force every ci.yml area to fire on this PR label Aug 2, 2026
@agentjp
agentjp merged commit 655969a into master Aug 2, 2026
56 checks passed
@agentjp
agentjp deleted the ci/arm-single-runner-gates branch August 2, 2026 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-full Force every ci.yml area to fire on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant