… publish.yml (#1497)
Two related cleanups:
1. **main.yml now runs ALL package tests**, not just melonjs. The
adapter test specs (3 × matter, 3 × planck) existed but were
only invoked at publish time — meaning PR merges never gated on
them. The new `pnpm -F @melonjs/{matter,planck}-adapter test`
lines run inside the same `mcr.microsoft.com/playwright:v1.59.1-noble`
container the existing melonjs test job uses, so chromium is
pre-baked, no install step needed.
2. **publish.yml stops re-running tests** that main.yml now gates:
- Drop the `Install Playwright browsers` step entirely (no
tests at publish time → no chromium needed).
- melonjs `pnpm dist` (`clean + lint + vitest + build + doc`) is
replaced with new `pnpm dist:publish` (drops `vitest`).
- matter / planck build_cmd drops the trailing `&& pnpm test`.
This also sidesteps a real Playwright bug we've been hitting all day:
on bare `ubuntu-latest` runners, `playwright install chromium` was
hanging indefinitely on the post-download extract step (download
itself completes in <2s; extract emits no further log line and
times out the entire job). Six consecutive runs hit the same hang
on distinct runners. Identified via the `DEBUG: pw:install` +
`timeout-minutes: 10` instrumentation from #1496. Sidestepping the
install entirely is the cleanest fix and aligns with main.yml's
container-based approach anyway.
Local verify:
- `pnpm -F @melonjs/matter-adapter test` → 177 / 177 pass
- `pnpm -F @melonjs/planck-adapter test` → 169 / 169 pass
- `pnpm dist:publish` → clean exit, docs generated
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The last five `publish.yml` runs all hung indefinitely on the Install Playwright browsers step. Logs show the chromium binary downloads cleanly in ~0.5s and then ~51 minutes of dead silence before manual cancel. So the hang is on a post-download step (extract / validate / spawn), not the CDN. Direct downloads from playwright.dev outside the runner work fine.
Two minimal observability tweaks so the next attempt gives us actionable evidence instead of another black-box hang:
Pure diagnostic / safety. No behaviour change on a healthy run; visibly faster failure on a sick one.
Once the next dispatch fails with verbose output, we'll know what the real fix is — likely a Playwright version pin, a sandbox flag, or a missing apt package.
Test plan
🤖 Generated with Claude Code