The self-hosted git is gitea/gitea:latest (1.26), which reads .gitea/workflows/ + .github/workflows/, not .forgejo/. Updated docs/ci.md with the real enable steps (app.ini [actions], act_runner host-mode register via `gitea actions generate-runner-token`, no web UI needed). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015jtxAiu5dAW4WxCNdGkrkJ
2.3 KiB
CI
.gitea/workflows/checkpoint.yml runs the full checkpoint suite
(scripts/run_checkpoint_tests.py: migrations on a fresh DB, backend
pytest, all Godot smoke tests, the 2-player multiplayer test, and the
fresh-clone boot check) on every push to main and every PR.
It does not run yet — the self-hosted Gitea instance (git.cloudbison…,
Gitea 1.26) has Actions disabled and no runner registered. This is a
one-time operator setup on the AGP host.
Enabling it
1. Turn on Actions in Gitea
Add to /data/gitea/conf/app.ini inside the forgejo container
(host path /DATA/AppData/forgejo/gitea/conf/app.ini):
[actions]
ENABLED = true
then docker restart forgejo.
2. Register a host runner
The suite starts Docker containers and runs the Godot binary, so a container
runner would need docker-in-docker + a Godot image. act_runner in host
execution mode runs jobs directly on the AGP box — where Docker,
~/godot/godot, and Python already live.
# on the AGP host
cd ~ # or wherever you keep the runner
# 2a. binary
curl -sL -o act_runner \
https://gitea.com/gitea/act_runner/releases/download/v0.2.13/act_runner-0.2.13-linux-amd64
chmod +x act_runner
# 2b. registration token (no web UI needed)
TOKEN=$(docker exec forgejo gitea --config /data/gitea/conf/app.ini \
actions generate-runner-token)
# 2c. register (host label -> jobs run directly on this machine)
./act_runner register --no-interactive \
--instance http://localhost:3000 \
--token "$TOKEN" \
--name agp-host \
--labels host:host
# 2d. run it (add a systemd unit for persistence)
./act_runner daemon
--labels host:host means "a label called host, executed on the host".
The workflow's runs-on: host then matches it.
Security note: a host-mode runner executes whatever a workflow says,
directly on the box, as the runner's user (which needs docker group
membership). Fine for a single-maintainer private repo; revisit if the repo
ever gets outside contributors.
3. Push a commit
The checkpoint workflow appears under the repo's Actions tab and gates
merges.
Interim: run it by hand
python scripts/run_checkpoint_tests.py
— also what /checkpoint/<PC> on the dashboard runs before a playtest build.