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): restore PlayMode cells, trim mobile on PR, harden Windows pre-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 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.
- `playmode` declares `needs: set-matrix` and consumes via
`matrix.include: fromJSON(needs.set-matrix.outputs.playmode)`. Each
cell carries every key the steps need (target, backend, unity,
changeset, runner), so no augmentation step can silently drop keys.
- `mobile-build` declares `needs: set-matrix` and consumes
`needs.set-matrix.outputs.mobile`. PR runs drop Unity 2022.3.62f2 to
match the playmode and playmode-linux trim. Schedule and
workflow_dispatch keep the full 3 Unity versions.
- 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.
- mobile-build job steps unchanged. mobile-build trigger fix (the
`null == false` coercion) lives in SDK-329 / PR #748 and rebases on
this hot-fix.
- playmode-linux untouched: its existing cross-product + conditional
exclude pattern works because it has no axis-matching include items
and `runs-on` is hardcoded.
Linear: https://linear.app/imtbl/issue/SDK-330
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments