feat(builder): every boot through the node-agent, every lost file counted, Steam cache
What a builder boot sees is now what a node does: - First boots (untouched, or -as-deployed with exactly a new server's settings) are deployed by the node-agent's BootTest in keep mode; the builder only watches the console and inspects what's left. The Go copy of the deploy (its own docker run, mounts and startup prefix) is gone. It had drifted: it gave the image's VOLUME folders their own volumes, which nodes don't, so saves there looked safe while every start loses them. - Files written outside /server and /data are counted whatever their type (it only counted config-like extensions, so .sav or .db saves went unseen), including the image's VOLUME folders; logs, pid and lock files and system folders are left out. - Boot tests ask the server to stay up holdSec (60 s, test.yaml can set it) after its ready line and to listen on every published container port (needs the node-agent's matching BootTest). - Steam apps are downloaded once per build into a gbr.cache volume and copied into each boot, so later boots only check the files (STEAM_CACHE=off). - RUNNER.md no longer suggests docker system prune, which deletes the gbr-boottest network when nothing is using it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e07025f03d
commit
04967a8a16
10 files changed
+424
-171
No files matched your search
@@ -90,6 +90,8 @@ Know this before writing anything:
|
||||
- `failPatterns`: lines that mean the server will never come up (e.g. an unaccepted EULA).
|
||||
- No reliable ready line: leave `readyPattern` out, and the boot test checks the server stays up
|
||||
(`settleSec` in `test.yaml`, default 120 s).
|
||||
- After its ready line the server must stay up for `holdSec` (default 60 s), and then listen on every port in
|
||||
`defaultPorts`. A server that binds other ports, or only `127.0.0.1`, fails: players can't reach it.
|
||||
|
||||
### `test.yaml`
|
||||
- `config`: only what the server can't start without in CI (accepting the EULA, for example).
|
||||
|
||||
Reference in new issue
Block a user