fix(ci): restore the iOS 26 test leg dropped from PR and nightly runs#474
fix(ci): restore the iOS 26 test leg dropped from PR and nightly runs#474james-enperso wants to merge 1 commit into
Conversation
pr.yaml and nightly.yaml pass `macos: ${{ matrix.macos }}` to the reusable iOS
workflow, but only the ^18 matrix leg defined `macos`. For the ^26 leg the value
is undefined, so an empty string is passed, which overrides the reusable
workflow's `macos: default: macos-latest` and leaves `runs-on:` empty. GitHub then
creates NO job for that leg — no run, no failure, no "skipped" — so since this was
introduced, every nightly and PR has executed zero iOS 26 / Xcode 26 tests while
the iOS side still reports green (only the ^18 leg runs).
Add `macos: macos-latest` to the ^26 include entry in both files so the input is
never empty and the leg runs again. Verify by confirming the run has 4 jobs
(android + iOS ^26 + iOS ^18, plus the gate) rather than fewer.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015CGbVaRKrx7DeurX81NWdQ
|
Hi @james-enperso — thank you for catching this! Confirming it against the live GitHub jobs API was exactly the right move, and your root cause analysis is spot on. We're closing this in favour of #476, which fixes the same regression but at the call site rather than in the matrix include entries: # pr.yaml / nightly.yaml — with: block
macos: ${{ matrix.macos || 'macos-latest' }}The reason: adding Your contribution is credited in the commit message of #476. Thanks again! |
…ll site
When a matrix include entry omits `macos`, `${{ matrix.macos }}` evaluates
to an empty string which, when passed as a workflow_call input, overrides
the reusable workflow's `default: macos-latest` — causing `runs-on: ""`
and silently producing no job for that leg.
Fix by adding `|| 'macos-latest'` at the call site in both pr.yaml and
nightly.yaml, so any matrix row that omits `macos` automatically gets the
right runner without requiring explicit per-row bookkeeping.
Credit to @james-enperso for identifying the regression and confirming it
against the live GitHub jobs API (PR #474).
Problem
pr.yamlandnightly.yamlpassmacos: ${{ matrix.macos }}to the reusable iOS workflow, but only the^18matrix leg definesmacos:For the
^26legmatrix.macosis undefined, so an empty string is passed to the reusable workflow. That empty string overrides the callee'smacos: { default: macos-latest }, leavingruns-on: ${{ inputs.macos }}empty — and GitHub creates no job for that leg: no run, no failure, no "skipped".Effect: since this was introduced, every nightly and every PR has executed zero iOS 26 / Xcode 26 tests, while the iOS side of the run still reports green (only the
^18leg runs). A regression that only surfaces on the newest iOS/Xcode lane — the primary support target — merges and ships with CI green, and nobody is told the leg is missing.This was confirmed against the live GitHub jobs API: nightly runs after the change contain only 2 jobs (android + iOS
^18), with no^26job in any state.Fix
Add
macos: macos-latestto the^26include entry in bothpr.yamlandnightly.yaml, so the input is never an empty string and the leg runs on the default runner again.Test plan
^26job again (4 jobs total: android + iOS^26+ iOS^18, plus the permission gate).🤖 Generated with Claude Code
https://claude.ai/code/session_015CGbVaRKrx7DeurX81NWdQ