Skip to content

Synchronize world colliders with physics backends #2427

Synchronize world colliders with physics backends

Synchronize world colliders with physics backends #2427

Workflow file for this run

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