#35774 ci: test cross-built macos arm64 binaries
| Reviewability | Reviews | Agreement | Size | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| #35774 ci: test cross-built macos arm64 binaries | Ready | 0 | Strong | 127 | ||||||
|
|
|
|
| ||||||
Reviewability: ReadyStalePaused Agreement: StrongPositivePositive w/ caveatsNeutralMildDisputedBlockedCrickets Reviews: current code-review ACKs, then (+stale ACKs) and -NACKs; greener = more ACKs. Size: lines added or modified outside tests, then in tests; greener = smaller. | ||||||||||
Goal
Adds a CI workflow to run test_bitcoin and test_bitcoin-qt on native macOS arm64 runners using cross-built binaries from the macos_cross job. Enables cross-OS and cross-architecture cache sharing to transfer the built binaries to the native runner.
Problem: macOS binaries cross-compiled using depends are not executed or tested in CI, allowing platform-specific runtime defects such as #35771 (test_bitcoin-qt segfaulting on macOS) to slip through undetected.
Reviewability
Ready
Nothing known that would invalidate a review now.
Waiting on (from the thread read):
- reviewer: review following rebase 2026-09-11
- reviewer: review of the rebased PR 2026-09-11
Agreement
Strong
substantive support, no open objection (fanquake)
Thread notes: Converted cache objection to a suggestion, added maflcko's non-determinism objection and question, and recorded fanquake's rebase suggestion, all addressed by the author. / Added maflcko's non-determinism objection and mac cross env question, fanquake's rebase suggestion, and updated waiting status following the author's rebase.
Objections, suggestions, and questions:
| Reviewer | Type | Harm, request, or question | Status | Must be | Author replied | Quote |
|---|---|---|---|---|---|---|
| maflcko (member) | suggestion, approach | Use CI artifacts instead of the cache to pass binaries between jobs, like the Windows tests | accepted · author explained CI infra speed concerns; maflcko had no strong opinion | answered | yes | 2026-07-22: 'Seems a bit tedious to use the cache for this? Why not use a artifact, like the pre-existing windows tests' Status from: 2026-07-30: maflcko: 'No strong opinion. I just wonder if artifcats are also slow and if inconsistent handling is worth it.' |
| maflcko (member) | objection, correctness | CI will fail due to non-determinism if not frozen to record-frozen-commit | fixed · fix pushed · author prepared commit and rebased | changed | yes | 2026-07-22: 'This must be frozen to `record-frozen-commit`, otherwise, the CI will fail due to non-determinism?' Status from: 2026-09-11: willcl-ark: 'Rebased' |
| maflcko (member) | question, scope | Why make this change in 00_setup_env_mac_cross.sh? | answered · fix pushed · author explained it was unintentional and dropped the commit | answered | yes | 2026-07-22: 'Why this change?' Status from: 2026-07-22: willcl-ark: 'Because I didn't realise deploy was already building that :) Commit will be dropped in next push.' |
| fanquake (member) | suggestion, approach | Rebase and put this PR on top of #35838 | fixed · fix pushed · author rebased | changed | no | 2026-07-30: 'Could rebase, and put this on top of #35838?' Status from: 2026-09-11: willcl-ark: 'Rebased' |
Support:
- fanquake (member) (Concept ACK, 2026-07-23): Similar to Windows, we should have a CI that is natively testing the release-like cross built bins.
Participants:
- maflcko (member, objection, 4 statements 2026-07-22 to 2026-07-30): suggested artifacts over cache, flagged CI non-determinism, and questioned env setup change
- fanquake (member, support, 2 statements 2026-07-23 to 2026-07-30): Concept ACK; suggested rebasing on top of #35838
- sedited (member, neutral, 1 statements 2026-09-11 to 2026-09-11): prompted author for rebase
Files
0 lines under test/bench/ci.
- .github/workflows/ci.yml +105/-6
- .github/actions/cache/restore/internal/action.yml +11/-0
- .github/actions/cache/save/internal/action.yml +11/-0
Card
The short text the ranking pass compares across PRs.
Runs unit tests on cross-built macOS arm64 binaries on native hardware in CI. Cross-built macOS binaries previously went untested in CI, allowing regressions like #35771 where depends builds crashed at runtime to slip through unnoticed. fanquake Concept ACKed the PR, stating that release-like cross-built binaries should be tested natively like Windows builds are. The branch was recently rebased with passing CI, and no open objections remain.
Data
thread read through 2026-09-11 (11 statements), head 735c2bc0bb
labels: Tests
Categories
Build and CI
P2 · test coverage
Enables native CI execution of release-like cross-compiled macOS arm64 binaries. The PR description notes that cross-compiled macOS binaries are currently never run in CI, allowing platform runtime failures like #35771 to go undetected.
Membership: Modifies .github/workflows/ci.yml and cache actions to add a native macOS arm64 test job.
Factors: security/stability 1, bug 1, performance 0, user value 1, leverage 1
Test infrastructure
P2 · test coverage
Extends test infrastructure to run test_bitcoin and test_bitcoin-qt on native macOS arm64 hardware. As noted in the description, this provides test signal to catch realistic platform-specific runtime crashes before release.
Membership: Carries the Tests label and enables unit test suite execution on native macOS arm64 runners.
Factors: security/stability 1, bug 1, performance 0, user value 1, leverage 1