From d755dc339a03388d8f1ed1989c59c3d2ce060279 Mon Sep 17 00:00:00 2001 From: ZVN DEV <78920650+zvndev@users.noreply.github.com> Date: Wed, 17 Jun 2026 01:15:27 -0400 Subject: [PATCH] fix(ci): set portable RUSTFLAGS in publish.yml to stop rustc SIGILL publish.yml ran `cargo test --workspace` (its pre-publish gate) with no RUSTFLAGS override, so it inherited `target-cpu=native` from the committed .cargo/config.toml. On GitHub's heterogeneous shared-runner fleet that makes rustc itself crash with SIGILL (illegal instruction) on runners whose advertised CPU features exceed what the live-migrated silicon can actually execute. Two v0.5.1 publish attempts died this way; a third (dry-run) passed only because it landed on a compatible runner. ci.yml, release.yml, and bench.yml all already override this with `-C target-cpu=x86-64-v2` for portability. publish.yml was the only one missing it. Add the same override so the publish gate is reproducible. No effect on published crates (cargo publish packages source, not the verification binary), but it unblocks the crates.io publish. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/publish.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0a3ae8f..ddda818 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -34,6 +34,13 @@ jobs: env: CARGO_TERM_COLOR: always CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} + # The repo's .cargo/config.toml sets `target-cpu=native` for local M1 dev. + # On GitHub's heterogeneous shared-runner fleet that flag makes rustc emit + # instructions the underlying (often live-migrated) silicon can't execute, + # so the verification build dies with SIGILL. Every other workflow + # (ci/release/bench) overrides it with a portable baseline; publish.yml was + # the one that didn't. Match them so the publish gate is reproducible. + RUSTFLAGS: "-C target-cpu=x86-64-v2" steps: - name: Checkout