Skip to content

ci: expand build matrix to Linux x86_64 / Linux aarch64 / macOS arm64#2

Open
SMC17 wants to merge 1 commit into
mainfrom
ci/cross-platform-matrix
Open

ci: expand build matrix to Linux x86_64 / Linux aarch64 / macOS arm64#2
SMC17 wants to merge 1 commit into
mainfrom
ci/cross-platform-matrix

Conversation

@SMC17
Copy link
Copy Markdown
Owner

@SMC17 SMC17 commented May 14, 2026

Summary

Expands CI from a single ubuntu-latest (x86_64) job to a three-runner native matrix plus a four-target cross-compile sanity job:

  • ubuntu-latest (x86_64, native) — current default
  • ubuntu-24.04-arm (aarch64, native) — new
  • macos-14 (Apple Silicon aarch64, native) — new
  • cross-compile sanity (aarch64-linux-gnu, aarch64-macos, x86_64-linux-gnu, x86_64-macos) from the x86_64 host

Why

Raises the tide on the hardware-verified evidence level defined in AGENT_HARNESS.md. Spectral/centrality kernels run float-heavy power iteration; arm64 native runners now exercise the same Zig 0.16.0 std-math path on a different ISA. Numerical regressions across architectures would surface here.

Local verification

  • zig build test on Linux x86_64 → PASS (50/50 + ~10k random-graph fuzz)
  • zig build -Dtarget=aarch64-linux-gnu on Linux x86_64 → PASS
  • zig build -Dtarget=aarch64-macos on Linux x86_64 → PASS
  • zig fmt --check src/ bench/ build.zig → PASS

Caveats

  • macOS runners use the native Apple toolchain — they do not exercise the LLD-via-Linux codepath the cross-compile sanity job hits. Intentional: the two paths catch different regressions.
  • Numerical tolerances in cross-validation tests (PageRank 1e-5, eigenvector 1e-4, modularity 1e-9) are not architecture-tuned. If arm64 IEEE-754 yields a different rounding chain it could expose a tolerance gap — that would be a worthwhile finding to surface, not a reason to skip the matrix.

Type-I / Type-II audit

  • Type I (false positive risk): matrix labels describe runner architecture only. We are not claiming benchmark numbers across ISAs; only that the build + test invocations are green on native arm64 Linux + Apple Silicon.
  • Type II (missed risk): without this matrix any aarch64-only regression (alignment, endianness, float-rounding chain) lands silently. The cross-compile sanity job catches compile-side; native runners catch test-side.

Test plan

  • All matrix legs green on CI
  • No regression on existing fmt / build / test steps
  • If arm64 native runner exposes a float-tolerance gap, surface it as a follow-up finding rather than hiding behind looser tolerances

Adds native-runner coverage on three platforms (ubuntu-latest x86_64,
ubuntu-24.04-arm aarch64, macos-14 aarch64) plus a cross-compile sanity
job that exercises four targets from the x86_64 host. Closes the
hardware-class gap on the AGENT_HARNESS evidence ladder: the
`hardware-verified` proof level can now reference real arm64 silicon for
this substrate library.

Type-I lens: matrix labels (`Linux aarch64`, `macOS arm64`) are accurate
to the runner architecture GitHub provides; we are not claiming Apple M-
series performance characteristics, only that the same Zig 0.16.0 build
+ test invocations run green on those native runners.

Type-II lens: cross-compile sanity job catches platform regressions
even if a native runner is offline or queued.
SMC17 added a commit to SMC17/SMC17 that referenced this pull request May 14, 2026
…Zig repos

zig-cobs / zig-frame-protocol / zig-graph / zig-h3 / sentinel-sbom each
expanded from a single ubuntu-latest job to 3 native runners
(Linux x86_64, Linux aarch64, macOS Apple Silicon) plus a 4-target
cross-compile sanity job. The `hardware-verified` evidence level is
no longer dormant.

zig-h3's macOS-from-Linux cross-compile is restricted to Linux targets
only — documented as a Zig 0.16.0 LLD-on-mach-o gap, not as a missing
test. sentinel-sbom's macOS path also swaps `sha256sum` → `shasum -a 256`.

Per-repo PRs:
- zig-cobs           SMC17/zig-cobs#2
- zig-frame-protocol SMC17/zig-frame-protocol#2
- zig-graph          SMC17/zig-graph#2
- zig-h3             SMC17/zig-h3#2
- sentinel-sbom      SMC17/sentinel-sbom#2

Honest incident: agent ran `git checkout README.md` while branching
zig-cobs and discarded an uncommitted WIP. Reported instead of hidden.
Matches the blast-radius-protection-is-substrate-primitive doctrine.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@SMC17 SMC17 force-pushed the ci/cross-platform-matrix branch from da63b28 to 4379db6 Compare May 14, 2026 20:35
SMC17 added a commit to SMC17/SMC17 that referenced this pull request May 14, 2026
…Zig repos

zig-cobs / zig-frame-protocol / zig-graph / zig-h3 / sentinel-sbom each
expanded from a single ubuntu-latest job to 3 native runners
(Linux x86_64, Linux aarch64, macOS Apple Silicon) plus a 4-target
cross-compile sanity job. The `hardware-verified` evidence level is
no longer dormant.

zig-h3's macOS-from-Linux cross-compile is restricted to Linux targets
only — documented as a Zig 0.16.0 LLD-on-mach-o gap, not as a missing
test. sentinel-sbom's macOS path also swaps `sha256sum` → `shasum -a 256`.

Per-repo PRs:
- zig-cobs           SMC17/zig-cobs#2
- zig-frame-protocol SMC17/zig-frame-protocol#2
- zig-graph          SMC17/zig-graph#2
- zig-h3             SMC17/zig-h3#2
- sentinel-sbom      SMC17/sentinel-sbom#2

Honest incident: agent ran `git checkout README.md` while branching
zig-cobs and discarded an uncommitted WIP. Reported instead of hidden.
Matches the blast-radius-protection-is-substrate-primitive doctrine.
@SMC17 SMC17 force-pushed the ci/cross-platform-matrix branch from 4379db6 to 2fef7ff Compare May 14, 2026 21:04
SMC17 pushed a commit to SMC17/SMC17 that referenced this pull request May 14, 2026
…Zig repos

zig-cobs / zig-frame-protocol / zig-graph / zig-h3 / sentinel-sbom each
expanded from a single ubuntu-latest job to 3 native runners
(Linux x86_64, Linux aarch64, macOS Apple Silicon) plus a 4-target
cross-compile sanity job. The `hardware-verified` evidence level is
no longer dormant.

zig-h3's macOS-from-Linux cross-compile is restricted to Linux targets
only — documented as a Zig 0.16.0 LLD-on-mach-o gap, not as a missing
test. sentinel-sbom's macOS path also swaps `sha256sum` → `shasum -a 256`.

Per-repo PRs:
- zig-cobs           SMC17/zig-cobs#2
- zig-frame-protocol SMC17/zig-frame-protocol#2
- zig-graph          SMC17/zig-graph#2
- zig-h3             SMC17/zig-h3#2
- sentinel-sbom      https://github.com/SMC17/sentinel-sbom/pull/2

Honest incident: agent ran `git checkout README.md` while branching
zig-cobs and discarded an uncommitted WIP. Reported instead of hidden.
Matches the blast-radius-protection-is-substrate-primitive doctrine.
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