Files
systemic-game-design-course/.gitea/workflows/ci.yml
T

81 lines
2.0 KiB
YAML

name: CI
on:
push:
branches: [main, "build/**"]
pull_request:
jobs:
tools:
name: Tool tests and sync-check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
- run: npm run test:tools
- run: npm run check
- run: npm run test:site
verify-references:
name: Verify references (all modules, Rust and TS)
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
- uses: dtolnay/rust-toolchain@1.85.1
- run: node tools/verify-references.mjs
coupling-audit:
name: Coupling audit on references
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
- name: Audit every reference engine
run: |
set -e
for d in course/*/reference/*/; do
echo "== $d"
node tools/coupling-audit.mjs "$d"
done
site:
name: Site build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
- run: npm --prefix site ci
- run: npm --prefix site run build
env:
COURSE_HOST: ci.example.invalid
naive-engine:
name: Naive engine tests (Module 0)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
- uses: dtolnay/rust-toolchain@1.85.1
# test_00_real_rules_whirlwind_order is expected to fail: it is marked
# #[should_panic] (Rust) / test.fails (TS), so the suite passes.
- run: cargo test
working-directory: naive-engine/rust
- run: npm ci
working-directory: naive-engine/ts
- run: npm test
working-directory: naive-engine/ts
- run: npm run typecheck
working-directory: naive-engine/ts