ci: run the single-runner gates on the arm linux runners - #210
Merged
Conversation
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).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.ymlyaml,taplo,zizmor,typos,links; gui.ymlchecks,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-onmutants,gui-mutants,wasm-mutants— taiki-e/install-action's cargo-mutants manifest has no aarch64 Linux asset (x86_64 linux-gnu / macOS / Windows only), andfallback: noneturns a missing prebuilt into a hard failure.gateand itsmsrvcompanion — 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-yamldownloads cargo-dist'saarch64-unknown-linux-muslarchive and verifies it against that asset's published sha256; version-freshness.yml re-checks the committed digest against the same asset.runner.arch: both hold executables, andrunner.osisLinuxon 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.