Run ROM-free CI on the available Forgejo runner (#45)
This commit is contained in:
1 parent
f34068f7df
commit
4082a9a2d3
3 files changed
+39
-21
No files matched your search
@@ -0,0 +1,30 @@
|
|||||||
|
name: Checks
|
||||||
|
on: [push, pull_request, workflow_dispatch]
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
jobs:
|
||||||
|
web:
|
||||||
|
# The shared Docker-Builder1 runner advertises this label.
|
||||||
|
runs-on: docker-build
|
||||||
|
container:
|
||||||
|
image: node:22-bookworm
|
||||||
|
timeout-minutes: 20
|
||||||
|
env:
|
||||||
|
# Keep ROM-dependent tests local, even if the runner has a ROM elsewhere.
|
||||||
|
CRYSTAL_ROM_PATH: /nonexistent/crystal-ci.gbc
|
||||||
|
steps:
|
||||||
|
- uses: https://github.com/actions/checkout@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: Verify the no-ROM test environment
|
||||||
|
run: test ! -e "$CRYSTAL_ROM_PATH"
|
||||||
|
- run: npm ci
|
||||||
|
- run: npm run check:vendor
|
||||||
|
- name: Synthetic unit tests
|
||||||
|
run: npm test -- --maxWorkers=2
|
||||||
|
- run: npm run build
|
||||||
|
- run: npm run check:release
|
||||||
|
- run: npm run build:reference
|
||||||
|
- run: npx playwright install --with-deps chromium webkit
|
||||||
|
- name: Browser tests without a ROM
|
||||||
|
run: npm run test:e2e -- --workers=2
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
name: Checks
|
|
||||||
on: [push, pull_request]
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
jobs:
|
|
||||||
web:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: 22
|
|
||||||
cache: npm
|
|
||||||
- run: npm ci
|
|
||||||
- run: npm run check:vendor
|
|
||||||
- run: npm test
|
|
||||||
- run: npm run build
|
|
||||||
- run: npm run check:release
|
|
||||||
- run: npm run build:reference
|
|
||||||
- run: npx playwright install --with-deps chromium webkit
|
|
||||||
- run: npm run test:e2e
|
|
||||||
@@ -56,6 +56,15 @@ npm run check:vendor
|
|||||||
|
|
||||||
Local-ROM tests use `Pokemon - Crystal Version (UE) (V1.1) [C][!].gbc` at the root, or `CRYSTAL_ROM_PATH`. They skip when absent; no test downloads a ROM. Game files, private reference builds and gameplay screenshots must remain ignored.
|
Local-ROM tests use `Pokemon - Crystal Version (UE) (V1.1) [C][!].gbc` at the root, or `CRYSTAL_ROM_PATH`. They skip when absent; no test downloads a ROM. Game files, private reference builds and gameplay screenshots must remain ignored.
|
||||||
|
|
||||||
|
[CI checks](https://git.azuze.fr/kawa/Crystal/actions?workflow=checks.yml) run on pushes and pull requests, or manually from Actions. The [workflow](.forgejo/workflows/checks.yml) uses the shared `docker-build` runner with Node 22 in a Debian container. It installs from the lockfile, runs synthetic unit and Chromium/WebKit browser tests, builds both applications, and checks vendor integrity and native release isolation. `CRYSTAL_ROM_PATH` points to a verified absent file, so ROM-dependent tests skip; `check:reference` remains a local check requiring the private ROM and reference build.
|
||||||
|
|
||||||
|
To reproduce the CI test selection locally:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
CRYSTAL_ROM_PATH=/nonexistent/crystal-ci.gbc npm test -- --maxWorkers=2
|
||||||
|
CRYSTAL_ROM_PATH=/nonexistent/crystal-ci.gbc npm run test:e2e -- --workers=2
|
||||||
|
```
|
||||||
|
|
||||||
`git config core.hooksPath .githooks` keeps the forge's project board in step with commits: `Closes #N` in a message moves card N to Fait and closes it, any other `#N` moves it to En cours, and a commit on `main` without a reference adds a closed card to Fait. `[no-card]` skips a commit. See [project-board.mjs](scripts/project-board.mjs).
|
`git config core.hooksPath .githooks` keeps the forge's project board in step with commits: `Closes #N` in a message moves card N to Fait and closes it, any other `#N` moves it to En cours, and a commit on `main` without a reference adds a closed card to Fait. `[no-card]` skips a commit. See [project-board.mjs](scripts/project-board.mjs).
|
||||||
|
|
||||||
The [full port plan](docs/PLAN.md) covers remaining game systems, save slots, the world map, Pokédex, internet Link, friends and optional mobile step support for egg hatching. See the [architecture](docs/ARCHITECTURE.md) and [routine map and verification](docs/NATIVE_PORT.md) for module boundaries and reference checks.
|
The [full port plan](docs/PLAN.md) covers remaining game systems, save slots, the world map, Pokédex, internet Link, friends and optional mobile step support for egg hatching. See the [architecture](docs/ARCHITECTURE.md) and [routine map and verification](docs/NATIVE_PORT.md) for module boundaries and reference checks.
|
||||||
|
|||||||
Reference in new issue
Block a user