WebGL 2 only renderer + Vertex Array Objects (#1509) — 20.0.0 (#1553) #1239
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build & Test | |
| # Runs lint + test on every push/PR — no path-filtered shim partition. | |
| # The previous two-workflow setup (`main.yml` + `main-docs.yml`) was | |
| # racy on mixed PRs (PRs touching both `.md` and code): GitHub Actions | |
| # evaluates `paths` / `paths-ignore` against the full PR diff, so a | |
| # mixed PR triggered BOTH workflows, they shared `concurrency.group`, | |
| # and the faster docs-shim cancelled the real CI run while still | |
| # reporting green checks. Docs-only PRs pay ~2 minutes of CI cost as | |
| # the trade-off; cheaper than silently merging a lint failure. | |
| on: | |
| push: | |
| branches: [master] | |
| pull_request: | |
| types: [opened, synchronize] | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Setup node | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| - uses: pnpm/action-setup@v5 | |
| - name: Get pnpm store directory | |
| run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
| - uses: actions/cache@v5 | |
| with: | |
| path: ${{ env.STORE_PATH }} | |
| key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: ${{ runner.os }}-pnpm-store- | |
| - run: pnpm i | |
| - run: pnpm lint | |
| - run: pnpm biome check | |
| - run: pnpm build | |
| test: | |
| needs: lint | |
| runs-on: ubuntu-latest | |
| container: | |
| # must match the workspace's playwright version (root devDependencies) | |
| image: mcr.microsoft.com/playwright:v1.62.0-noble | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Setup node | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| - uses: pnpm/action-setup@v5 | |
| - name: Get pnpm store directory | |
| run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
| - uses: actions/cache@v5 | |
| with: | |
| path: ${{ env.STORE_PATH }} | |
| key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: ${{ runner.os }}-pnpm-store- | |
| - run: pnpm i | |
| - run: pnpm test | |
| - run: pnpm -F @melonjs/matter-adapter test | |
| - run: pnpm -F @melonjs/planck-adapter test | |
| # Windows build — only on master push, not on PRs | |
| windows: | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Setup node | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| - uses: pnpm/action-setup@v5 | |
| - name: Get pnpm store directory | |
| shell: bash | |
| run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
| - uses: actions/cache@v5 | |
| with: | |
| path: ${{ env.STORE_PATH }} | |
| key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: ${{ runner.os }}-pnpm-store- | |
| - run: pnpm i | |
| - run: pnpm lint | |
| - run: pnpm build |