Run the tests on macOS as well as Linux - #110
Merged
Merged
Conversation
The library is headless and most of it is platform-neutral, but not all of it: the UTF-8 byte entry, the width tables and anything touching character sizes are the sort of thing that agrees on one platform and not the other, and the hosts that embed this are developed on macOS. Linux alone has been answering for both. A SEPARATE job rather than a matrix on `build`. A matrix renames the check to "build (ubuntu-latest)", and `build` is the REQUIRED status check here -- a required check that stops reporting under its own name is not failing, it never appears, and branch protection waits for it for ever. That is exactly how documentation-only pull requests became unmergeable, and a rename would do the same thing to every pull request at once. Gated on the changes job like `perf` is: nothing under src/ changed means nothing to build differently. Free either way, since standard GitHub-hosted runners are free and unlimited on public repositories with macOS among them, but a run that cannot tell anyone anything is still noise. Perf stays on one platform on purpose. It compares three builds against each other and reads the spread as noise; a second platform in that mix would be measuring the platform.
JohnCampionJr
force-pushed
the
ci-macos
branch
from
August 30, 2026 03:26
721b877 to
8883340
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.
The library is headless and most of it is platform-neutral, but not all of it: the UTF-8 byte entry, the width tables and anything touching character sizes are the sort of thing that agrees on one platform and not the other. The hosts that embed this are developed on macOS, and Linux alone has been answering for both.
A separate job, not a matrix
buildis the required status check. A matrix renames it tobuild (ubuntu-latest), and a required check that stops reporting under its own name is not failing — it never appears, and branch protection waits for it for ever.That is precisely how documentation-only PRs became unmergeable here (#109), and a rename would do the same to every PR at once. So
build-macosis added alongside andbuildis untouched.Gated like perf
needs: changeswithif: needs.changes.outputs.src != 'false', so a documentation-only PR does not spin up a macOS runner to build nothing.It is free either way — standard GitHub-hosted runners are free and unlimited on public repositories, and
macos-latestis a standard runner; only larger runners are billed there. The per-minute macOS rate in the billing docs applies to private repositories, which is an easy thing to misread. But a run that cannot tell anyone anything is still noise in the checks list.Perf stays on one platform
Not an oversight. It builds three libraries and compares them against each other, reading the spread it observes as its own noise floor. A second platform in that mix would be measuring the platform rather than the change.