Skip to content

fix(physics): a rejected roll settles onto its face instead of restin… #76

fix(physics): a rejected roll settles onto its face instead of restin…

fix(physics): a rejected roll settles onto its face instead of restin… #76

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
jobs:
verify:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20, 24]
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: ${{ matrix.node-version }}
cache: npm
- run: npm ci
- run: npm run check
- run: npm run typecheck
- run: npm run test:coverage
- run: npm run build
- run: node examples/headless/main.mjs
# The unit tests run against workspace source, which is not what anyone
# installs. This packs the tarballs, installs them into a clean project, and
# uses them — so a broken exports map or a missing file fails the push that
# caused it, not the next release.
packaging:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: 24
cache: npm
- run: npm ci
- run: npm run smoke
# Pixels are only comparable against the browser build that drew them, so this
# runs in the image the baselines were generated in. The tag must match the
# Playwright pinned in package.json; tools/vrt/environment.mjs fails the job
# if a version bump leaves it behind.
visual:
name: visual regression
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/playwright:v1.62.0-noble
# Chromium exhausts the default 64 MB of shared memory and crashes.
options: --ipc=host
env:
VRT_IMAGE: mcr.microsoft.com/playwright:v1.62.0-noble
steps:
- uses: actions/checkout@v5
- run: npm ci
- run: npm run vrt
- name: Upload diffs
if: failure()
uses: actions/upload-artifact@v4
with:
name: vrt-diffs
path: tools/vrt/output/
if-no-files-found: ignore