open-standards/.github/workflows/wai-byte-equality.yml
Transaction Science ffd42e5fa6 ci: target the self-hosted fleet labels, not GitHub-hosted images
Every workflow was written for GitHub-hosted runners (ubuntu-latest,
macos-latest, macos-13, windows-latest, ubuntu-24.04-arm). This fleet's
Forgejo runners register different labels — `linux`, `linux-arm64`,
`macos`, `windows` — so as written, enabling Actions would queue every
job against a label no runner answers, and they would hang forever.

Mapping applied:
  ubuntu-latest / ubuntu-24.04-arm -> linux / linux-arm64
  macos-latest -> macos    windows-latest -> windows
  macos-13 (Intel Mac) -> dropped: the fleet has no Intel-Mac runner, and
    by the matrices' own stated logic it adds no arch coverage (x86_64 is
    held by linux + windows, arm64 by linux-arm64 + the macos reference).

Also: the macOS runner is a `host` executor launched from launchd, whose
PATH omits ~/.cargo/bin, so a raw `rustup` call is not found. wai-conformance
uses raw rustup across the matrix, so it now prepends ~/.cargo/bin to
$GITHUB_PATH first — a no-op on the platforms where cargo is already found.

All 10 jobs across 7 workflows parse and resolve to fleet labels. Note:
this makes the workflows *dispatchable*; the per-job conformance logic
(ONNX fixtures, cross-arch byte goldens) is what the first real runs verify.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-23 00:17:08 -04:00

59 lines
2.2 KiB
YAML

name: wai cross-architecture byte-equality
# The `replicate` determinism contract, checked on real silicon. WAI claims its
# integer-exact decode paths (rANS entropy coder, integer fixed-point synthesis)
# produce BYTE-IDENTICAL output on every machine. This matrix proves it: five
# OS/arch combinations decode the same fixtures and assert the same golden
# bytes — rANS streams produced by CompressAI's upstream encoder, and an
# int_synth output hash produced on the reference machine (macOS arm64). One
# diverging byte anywhere fails the suite.
#
# The conformance crate (`wai/byte-exact-conformance`) #[path]-includes the
# pure-integer sources from wai-rs — no system codec libraries, no ONNX runtime
# — so every leg runs in about a minute.
on:
pull_request:
paths:
- 'wai/byte-exact-conformance/**'
- 'wai/wai-rs/src/neural/int_synth.rs'
- 'wai/wai-rs/src/neural/jpegai_mans.rs'
- '.github/workflows/wai-byte-equality.yml'
push:
branches:
- main
paths:
- 'wai/byte-exact-conformance/**'
- 'wai/wai-rs/src/neural/int_synth.rs'
- 'wai/wai-rs/src/neural/jpegai_mans.rs'
- '.github/workflows/wai-byte-equality.yml'
jobs:
byte-equality:
name: ${{ matrix.label }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# Self-hosted fleet labels, not GitHub-hosted images. macos-x86_64 is
# dropped: no Intel-Mac runner exists in the fleet, and by the same
# argument the cargo-classes matrix already makes, it adds no arch
# coverage — x86_64 is held by linux-x86_64 and windows-x86_64, arm64
# by linux-aarch64 and the macos-arm64 reference.
include:
- { os: linux, label: linux-x86_64 }
- { os: linux-arm64, label: linux-aarch64 }
- { os: macos, label: macos-arm64 (reference) }
- { os: windows, label: windows-x86_64 }
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.97.1
- name: Decode fixtures, assert golden bytes
working-directory: wai/byte-exact-conformance
run: cargo test --release -- --nocapture