Synchronize world colliders with physics backends #2427
Workflow file for this run
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: CI | |
| # Default every job's GITHUB_TOKEN to read-only; jobs that need more (the | |
| # red-main reporter's issues: write) escalate at the job level. | |
| permissions: | |
| contents: read | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
| jobs: | |
| quick: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: 1.3.8 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ~/.bun/install/cache | |
| key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }} | |
| restore-keys: bun-${{ runner.os }}- | |
| - run: bun install --frozen-lockfile | |
| - run: bun run check-artifacts | |
| - run: bun run check-stage-skills | |
| - run: bun run check-skills | |
| - run: git fetch --no-tags origin main | |
| - run: bun run check-changelog | |
| - run: bun run build | |
| - run: bun run check-skill-api | |
| - run: bun run check-orphan-ratchet | |
| # Runs on PRs (not just the push-only `checks` job) so a new package subpath | |
| # that lands without regenerating scripts/export-manifest.json fails the PR | |
| # instead of only reddening main post-merge. Needs the `bun run build` above. | |
| - run: bun run check-export-manifest | |
| checks: | |
| if: github.event_name == 'push' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: 1.3.8 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ~/.bun/install/cache | |
| key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }} | |
| restore-keys: bun-${{ runner.os }}- | |
| - run: bun install --frozen-lockfile | |
| - run: bun run build | |
| - run: bun run build:registry | |
| - run: bun run check-types | |
| - run: bun test packages apps/dev scripts | |
| web-build: | |
| if: github.event_name == 'push' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: 1.3.8 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ~/.bun/install/cache | |
| key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }} | |
| restore-keys: bun-${{ runner.os }}- | |
| - run: bun install --frozen-lockfile | |
| - run: bun run --cwd apps/web build | |
| smoke: | |
| if: github.event_name == 'push' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 12 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: 1.3.8 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ~/.bun/install/cache | |
| key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }} | |
| restore-keys: bun-${{ runner.os }}- | |
| - run: bun install --frozen-lockfile | |
| - run: bun run smoke | |
| env: | |
| CHROME_PATH: /usr/bin/google-chrome | |
| games-gate: | |
| if: github.event_name == 'push' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: 1.3.8 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ~/.bun/install/cache | |
| key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }} | |
| restore-keys: bun-${{ runner.os }}- | |
| - run: bun install --frozen-lockfile | |
| - run: bun run games:clone | |
| env: | |
| GAMES_CLONE_TOKEN: ${{ secrets.GAMES_CLONE_TOKEN }} | |
| - run: bun run check-game-shape | |
| - run: bun run check-game-front-end | |
| - run: bun run check-content-gate | |
| - run: bun run check-art-direction | |
| - run: bun run check-game-feel | |
| ci: | |
| needs: [quick, checks, web-build, smoke, games-gate] | |
| if: always() | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| permissions: | |
| issues: write | |
| steps: | |
| - run: | | |
| ok() { test "$1" = "success" || test "$1" = "skipped"; } | |
| test "${{ needs.quick.result }}" = "success" && ok "${{ needs.checks.result }}" && ok "${{ needs.web-build.result }}" && ok "${{ needs.smoke.result }}" && ok "${{ needs.games-gate.result }}" | |
| - name: Report red main as an issue | |
| if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| GH_REPO: ${{ github.repository }} | |
| run: | | |
| title="CI red on main" | |
| body="[Run ${{ github.run_id }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) failed on \`${{ github.sha }}\`. Fix forward from origin/main on a fresh branch, then close this." | |
| n=$(gh issue list --state open --search "\"$title\" in:title" --json number --jq '.[0].number' || true) | |
| if [ -n "$n" ]; then gh issue comment "$n" --body "$body"; else gh issue create --title "$title" --body "$body"; fi |