You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci(audience): route all matrix jobs through set-matrix, harden Windows checkout (SDK-330)
- Replaces the cross-product matrix (unity x target x backend with
axis-matching include items) on `playmode` with a `set-matrix` helper
job that emits a fully-specified JSON matrix.
- The cross-product approach silently expanded to zero playmode cells
on every run since SDK-327, so Windows and macOS PlayMode tests have
not actually run on PRs (verified on the SDK-327 merge commit and on
PR #748). Root cause: a unity-keyed include item that has no cell to
augment after the conditional `exclude` removes Unity 2022 on PR runs
spawns an orphan combination missing `target`, `backend`, and
`runner`; `runs-on: ${{ matrix.runner }}` then evaluates to empty and
GitHub aborts the matrix.
- `set-matrix` runs on ubuntu-latest, defines the full 12-cell playmode
matrix, 6-cell playmode-linux matrix and 6-cell mobile matrix inline
as JSON, and uses jq to strip Unity 2022.3.62f2 cells when the
trigger is pull_request. Schedule and workflow_dispatch get the full
sets.
- All three matrix-driven jobs now declare `needs: set-matrix` and
consume `matrix.include: fromJSON(needs.set-matrix.outputs.<key>)`.
Each cell carries every key the steps need, so no axis-match
augmentation step can silently drop keys, and the workflow graph
shows all three jobs hanging off set-matrix in one place.
- `mobile-build` PR runs drop Unity 2022.3.62f2 to match the playmode
and playmode-linux trim. Schedule and workflow_dispatch keep all 3
Unity versions. Steps unchanged.
- `playmode-linux` matrix moved from cross-product + conditional
exclude to the same set-matrix-fed include pattern. Same 6 cells on
schedule, same 4 cells on PR; behaviour unchanged.
- Hardens the Windows pre-checkout cleanup. The previous Kill-stale step
only covered Unity-family processes and slept 2 seconds, then handed
off to actions/checkout@v4 which would die with EBUSY on stuck files
in examples/audience. New step adds bee_backend and mono to the kill
list, sleeps 3 seconds, and force-removes the workspace contents in a
retry loop so checkout's own cleanup is left with nothing to do.
Linear: https://linear.app/imtbl/issue/SDK-330
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments