Skip to content

ci: read the illumos set on Linux instead of macOS - #21

Merged
wfchandler merged 1 commit into
mainfrom
wc/ci-sysroot
Oct 24, 2026
Merged

wfchandler merged 1 commit into
mainfrom
wc/ci-sysroot

Conversation

@wfchandler

Copy link
Copy Markdown
Collaborator

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.

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>
@wfchandler
wfchandler merged commit f1149c2 into main Oct 24, 2026
4 checks passed
@wfchandler
wfchandler deleted the wc/ci-sysroot branch October 24, 2026 01:27
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