CI Setup
Both repositories run GitHub Actions on every push and pull request. Neither ever sees game data: nothing from a dump is in the repositories, and CI does not need it.
Code repository (Paleblood)
.github/workflows/ci.yml runs three jobs:
- build (gcc) and build (clang) — configure and build with CMake, then
ctest: the runtime's hook table and system libraries, the loader and the boot harness, the tool tests, and the harness on synthetic executables (tiny hand-assembled ones, so it is tested without the game). - policy — rejects anything that looks like game data, validates the function tables, checks that runtime and tools name nothing specific to the game, checks that the progress numbers in the README match
tools/progress.py, and exercises the pre-commit hooks. - readable game code —
tools/check_readable.pyfails on transcription patterns undergame/(addresses, raw offsets, magic numbers, recording code), and on any growth of its grandfathered list.
Verification against the real game cannot run in CI, because it needs your dump. It runs locally (tools/verify.py run, tools/smoke.sh) and its output goes into the pull request.
Wiki (Byrgenwerth)
.github/workflows/ci.yml installs MkDocs, rejects game data, checks that every generated file (progress data, tables, visuals) agrees with the data it comes from and that no page has a hand-typed count, builds the site with --strict, and exercises the pre-commit hooks.