diff --git a/README.md b/README.md index 3136e82..b04870f 100644 --- a/README.md +++ b/README.md @@ -43,9 +43,18 @@ The full design, module scope, build order, and prior-art verdicts are in ## Compatibility -The harness (`Tools/run-compat-test.sh` in the Ward repo) boots a real headless RimWorld with the -suite plus the popular psych/prison mods **and** the all-time most-subscribed mods loaded at once, -and fails on any error naming our code. Combat Extended gets its own dedicated pass. +The in-game harness (`Tools/run-compat-test.sh` in the Ward repo) boots a real headless RimWorld +with the suite plus the popular psych/prison mods **and** the all-time most-subscribed mods loaded +at once, and fails on any error naming our code. Combat Extended gets its own dedicated pass. It +needs a licensed RimWorld + xvfb, so it is a LOCAL step, not CI. + +## CI + +Each code repo runs a Gitea Actions workflow (`.gitea/workflows/ci.yml`) on push: **lint def XML** +(catches malformed XML and relative-xpath silent no-ops) + **dotnet build** against the Krafs +RimWorld reference assemblies (no game install needed). Runs on the self-hosted `truenas-runner` +(host mode, label `ubuntu-latest`); .NET is provisioned per-run via `setup-dotnet`. Green across +Foul Play, Contraband, and Ward. ## AI disclosure