Repository navigation
ci: read the illumos set on Linux instead of macOS - #21
Merged
Merged
Conversation
The macos job builds the workspace and the Mach-O fixtures, waits for the linux job and buildomat's helios job, and runs the suite over the cores both took. Its point is reading each set away from the system that took it. For the Linux sets that adds nothing: the testkit opens every Linux core with its set's own copy of the libraries the core maps (Capture::open, testkit::paths), on Linux and macOS alike, so both read the same files the same way. Only the illumos reader takes a different path off illumos: there resolve_path canonicalizes a mapped object's path against the local filesystem, and anywhere else it keeps the path the core recorded. Meanwhile the job is a second full build on a runner billed at a higher rate than Linux's, and in the three runs before this change 5 to 11 of its 13 to 18 minutes were spent waiting for the other two. The linux job now does the illumos read itself. After its own captures it waits for helios and unpacks the illumos set into HANSEI_CORES, where a capturing system reads every set it finds, so one suite run covers all three. A helios job that delivers nothing leaves the Linux sets read and fails the job by name afterwards, as the macos job did. The wait moves into the linux job's time, so its timeout goes from 120 to 180 minutes, the macos job's old ceiling. CI no longer sets HANSEI_SETS. What CI no longer covers is macOS itself: the Mach-O fixture builds and the dSYM extraction the golden tests read there, and the build against macOS's libc. Only a run on a Mac checks those now. The suite, run in the test image over fresh linux and linux-floor captures beside the illumos set CI published for 7680472 (#18), passed in full on that tree. The workflow's new steps have not yet run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 macos job builds the workspace and the Mach-O fixtures, waits for the linux job and buildomat's helios job, and runs the suite over the cores both took. Its point is reading each set away from the system that took it. For the Linux sets that adds nothing: the testkit opens every Linux core with its set's own copy of the libraries the core maps (Capture::open, testkit::paths), on Linux and macOS alike, so both read the same files the same way. Only the illumos reader takes a different path off illumos: there resolve_path canonicalizes a mapped object's path against the local filesystem, and anywhere else it keeps the path the core recorded. Meanwhile the job is a second full build on a runner billed at a higher rate than Linux's, and in the three runs before this change 5 to 11 of its 13 to 18 minutes were spent waiting for the other two.
The linux job now does the illumos read itself. After its own captures it waits for helios and unpacks the illumos set into HANSEI_CORES, where a capturing system reads every set it finds, so one suite run covers all three. A helios job that delivers nothing leaves the Linux sets read and fails the job by name afterwards, as the macos job did. The wait moves into the linux job's time, so its timeout goes from 120 to 180 minutes, the macos job's old ceiling. CI no longer sets HANSEI_SETS.
What CI no longer covers is macOS itself: the Mach-O fixture builds and the dSYM extraction the golden tests read there, and the build against macOS's libc. Only a run on a Mac checks those now.
The suite, run in the test image over fresh linux and linux-floor captures beside the illumos set CI published for 7680472 (#18), passed in full on that tree. The workflow's new steps have not yet run.