Skip to content

Let the newer macOS build without trying to compile ghostty - #200

Merged
arzafran merged 1 commit into
mainfrom
ci/compat-build-skip-zig
Jul 30, 2026
Merged

Let the newer macOS build without trying to compile ghostty#200
arzafran merged 1 commit into
mainfrom
ci/compat-build-skip-zig

Conversation

@arzafran

Copy link
Copy Markdown
Member

What this does

Fixes the "Build app" step #199 added to the macos-26 leg. It failed on its first run, and that was my mistake, not a real macOS 26 problem.

A build phase runs scripts/build-ghostty-cli-helper.sh, which compiles the Ghostty CLI helper with zig unless PROGRAMA_SKIP_ZIG_BUILD=1 (build-ghostty-cli-helper.sh:58). zig 0.15.2's MachO linker cannot resolve libSystem on macOS 26 — the same reason the matrix already sets skip_zig: true on that leg. The pre-existing unit-test step passed that variable through; the new build step did not.

Why it was hard to spot

The failure surfaces as:

Command PhaseScriptExecution failed with a nonzero exit code
** BUILD FAILED **

No error: line, no mention of zig, no indication which of several script phases failed. The only clue is a note: about an unrelated phase. The comment now records which variable and why, so the next person doesn't have to trace it back through the build phase.

The good news from that run

#199 worked. On the macos-15 leg, for the first time:

Build app                       :: success
Create virtual display          :: success
Smoke test                      :: success   ← had never executed before
Run unit tests (informational)  :: success

macos-15 is fully green, smoke test included — so Programa is now verifiably building and launching on macOS 15, which this job had never once confirmed. The informational unit suite passed there too, meaning the quarantine from #198 holds.

Test plan

  • tests/test_ci_unit_test_runner_behavior.sh passes
  • PROGRAMA_SKIP_ZIG_BUILD now passed by both the build step and the unit-test step (2 occurrences), evaluating to 1 on macos-26 and 0 on macos-15
  • workflow-guard-tests passes
  • macos-26 "Build app" succeeds, and its Smoke test correctly stays skipped (matrix.smoke is false there — deliberately untouched, see Make the compatibility check actually check compatibility #199)

The build step I just added to the newer macOS runner failed, and it was
my mistake. One of the build phases compiles a small ghostty helper unless
told not to, and the toolchain it uses cannot link on macOS 26. The test
step already passed that flag through; the new build step did not.

The failure gives you nothing to go on either, just "a script phase
failed" with no error line, so the comment now says which flag and why.
@arzafran
arzafran merged commit fff4c86 into main Jul 30, 2026
9 checks passed
@arzafran
arzafran deleted the ci/compat-build-skip-zig branch July 30, 2026 00:05
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