ci: verify behaviour on every platform and halve the macOS queue - #361
Merged
PathGao merged 1 commit intoAug 2, 2026
Merged
Conversation
test.yml runs `npm run check`, `npm test` and `cargo test` on a single ubuntu-22.04 runner. test_build.yml has a platform matrix but only builds. So the matrix proves the tree compiles everywhere and nothing more: a Windows- or macOS-only behavioural regression in the cfg-gated paths -- which is where this project's platform-parity bugs keep landing -- reaches a release build unchallenged. Run the suites inside the matrix. `npm test` is pinned to bash: its script globs `scripts/*.test.ts`, and the Windows runner's default pwsh neither expands the glob nor strips the quotes. cargo test uses `working-directory` rather than `cd ... && ...` so it does not depend on the shell's operator support. That would have made a queue problem worse, so two changes pay for it. The matrix built macOS twice, once per architecture. Measured across the open pull requests, those jobs run in 6-8 minutes but wait 20-30 for a slot, while Linux and Windows start immediately and finish in 9-10 -- macOS capacity, not job duration, is the constraint, and every pull request was taking two of those slots. One entry targeting `universal-apple-darwin` takes one slot and covers strictly more: it compiles both architectures, so an Intel-only break still fails the check, and it fails on the same artifact the release produces rather than on a pair of binaries nothing ships. A concurrency group cancels superseded runs. Each push to a pull request queued another full matrix while the previous one was still waiting, and both then competed for the same runners; several open pull requests were showing duplicated checks from exactly this. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PathGao
force-pushed
the
fix/run-tests-on-every-platform
branch
from
August 2, 2026 18:01
bd362d2 to
3050647
Compare
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.
Summary
test.ymlrunsnpm run check,npm testandcargo teston a singleubuntu-22.04runner.test_build.ymlhas a platform matrix but only builds.The matrix therefore proves the tree compiles everywhere and nothing more. A Windows- or macOS-only behavioural regression in the
cfg-gated paths — which is exactly where this project's platform-parity bugs keep landing — reaches a release build unchallenged.This runs the suites inside the matrix, and pays for the added time twice over.
Why the matrix shrinks
The matrix built macOS twice, once per architecture. Measured across the currently open pull requests:
linuxwindowsmacos-aarch64macos-x64macOS jobs are the fastest here and the slowest to start: capacity, not duration, is the constraint, and every pull request was taking two of those slots.
One entry targeting
universal-apple-darwintakes one slot and covers strictly more. It compiles both architectures, so an Intel-only break still fails the check — and it fails on the same artifact the release produces, rather than on a pair of single-arch binaries nothing ships.Why the concurrency group
Each push to a pull request queued another full matrix while the previous one was still waiting for a runner, and both then competed for the same macOS capacity. Several open pull requests are currently showing duplicated
test,linuxandwindowschecks from exactly this. Superseded runs are now cancelled.Notes
npm testis pinned toshell: bash— its script globsscripts/*.test.ts, and the Windows runner's defaultpwshneither expands the glob nor strips the quotes.cargo testusesworking-directoryrather thancd … && …, so it does not depend on the shell's operator support.macos-latest, and the artifact upload already globssrc-tauri/target/*/release/bundle/…, so both keep working unchanged.dist/,.cache/and.worktrees/, none of which have tracked files today.Validation
npm test→cargo test→ build across all three matrix entries.npm testandcargo testboth pass there. That was their first execution on Windows and it found no platform-specific failures — the coverage this PR establishes starts from a green baseline.