diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b30b7e6..a8cbbcd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,6 +16,11 @@ concurrency: jobs: test: runs-on: blacksmith-4vcpu-ubuntu-2404 + # Run inside the official Playwright image: browsers (chromium v1217 for + # playwright 1.59.1) are pre-baked, so the lib browser tests need no + # `playwright install` download โ€” which hangs after 100% on these runners. + container: mcr.microsoft.com/playwright:v1.59.1-noble + timeout-minutes: 15 env: MISE_EXPERIMENTAL: "1" steps: @@ -35,9 +40,6 @@ jobs: - name: ๐Ÿ’… Check (biome + tsc) run: mise run check - - name: ๐ŸŽญ Install Playwright browser (lib browser tests) - run: mise run playwright:install - - name: ๐Ÿงช Test unit (lib) run: mise run lib:test diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index d4adec5..e74dd8f 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -27,6 +27,11 @@ jobs: test: name: ${{ matrix.example }} runs-on: blacksmith-4vcpu-ubuntu-2404 + # Browser examples run inside the official Playwright image (browsers + # pre-baked, no download); non-browser examples run on the bare runner so + # their bun/deno toolchains stay untouched. Empty string โ‡’ no container. + container: ${{ matrix.browser && 'mcr.microsoft.com/playwright:v1.59.1-noble' || '' }} + timeout-minutes: 12 env: MISE_EXPERIMENTAL: "1" concurrency: @@ -63,9 +68,5 @@ jobs: - name: ๐ŸŽ Pack @vlandoss/env run: mise run env:pack - - name: ๐ŸŽญ Install Playwright browsers - if: matrix.browser - run: mise run playwright:install - - name: ๐Ÿงฉ Test e2e run: mise run //examples/${{ matrix.example }}:test:e2e