feat: Forgejo Actions CI gate #6

Merged
synapse merged 4 commits from feat/ci into develop 2026-08-21 15:17:59 +00:00
Owner

CI gate as Forgejo Actions workflow: nix flake check -L (package, fmt, clippy, tests, openapi-snapshot, VM e2e with in-VM hurl suite) plus the docs build, on every PR and push to develop.

Runner contract (documented in the workflow header + book): native host-mode forgejo-runner, label nix, host provides nix/git/nodejs and /dev/kvm. Note: no runner is registered yet — after merge, runs will queue as waiting until the runner exists (registration token from the Forgejo admin UI + a nixos-config change on the WS host). Merging is harmless meanwhile.

Also carries the operator's doc wording edit from the stats-api review (planning via forge issues or OpenSpec).

Closes the repo side of goatcounter-stats-gateway-6ba; release pipe (sbq) and attic cache (c85) are filed as dependents.

🤖 Generated with Claude Code

https://claude.ai/code/session_01T5j3dAJVcUjZv9k76sRTt9

CI gate as Forgejo Actions workflow: `nix flake check -L` (package, fmt, clippy, tests, openapi-snapshot, VM e2e with in-VM hurl suite) plus the docs build, on every PR and push to develop. Runner contract (documented in the workflow header + book): native host-mode forgejo-runner, label `nix`, host provides nix/git/nodejs and /dev/kvm. **Note: no runner is registered yet** — after merge, runs will queue as waiting until the runner exists (registration token from the Forgejo admin UI + a nixos-config change on the WS host). Merging is harmless meanwhile. Also carries the operator's doc wording edit from the stats-api review (planning via forge issues or OpenSpec). Closes the repo side of goatcounter-stats-gateway-6ba; release pipe (sbq) and attic cache (c85) are filed as dependents. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01T5j3dAJVcUjZv9k76sRTt9
Operator edit carried over from the stats-api review.
Native host-mode runner, label `nix`; requirements documented in the
workflow header and the book. Prod-never-compiles principle recorded:
this pipeline is the build side, chiba only substitutes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T5j3dAJVcUjZv9k76sRTt9
fix: CI targets the real runner (self-hosted, on-demand one-job)
All checks were successful
ci / gate (pull_request) Successful in 4m9s
25a4b03924
runs-on matches ono-sendai's labels; docs describe the on-demand model
instead of an obsolete registration flow.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T5j3dAJVcUjZv9k76sRTt9
docs: describe CI as maintainer-operated on-demand runner, not our local procedure
All checks were successful
ci / gate (pull_request) Successful in 18s
c48083449f
The book documented a git-excluded local file (RUNNER.md) that no
contributor checkout contains. Now it documents the system property —
volatile runner, runs may queue, local `nix flake check` is the same
gate — and keeps operating notes out of the product docs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T5j3dAJVcUjZv9k76sRTt9
synapse merged commit 0febca50ce into develop 2026-08-21 15:17:59 +00:00
synapse deleted branch feat/ci 2026-08-21 15:17:59 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
synapse/goatcounter-stats-gateway!6
No description provided.