diff --git a/.gitea/workflows/gates.yml b/.gitea/workflows/gates.yml index 86a27e7..4ee8d7d 100644 --- a/.gitea/workflows/gates.yml +++ b/.gitea/workflows/gates.yml @@ -32,6 +32,27 @@ jobs: git checkout -q FETCH_HEAD echo "checked out $(git rev-parse HEAD)" + - name: Fetch the controller CHANGELOG (golden-currency gate needs the sibling repo) + # R-242's gate compares the newest RELEASED controller against the newest golden baked here, + # and it reads the released version from the sibling clone's CHANGELOG.md — the same sibling + # assumption reuse_refs_check.py and instructions_gate.py already make on a workstation. + # + # CI checks out ONE repo, shallow, so without this the gate exits 2 (INCONCLUSIVE) and CI is + # red for ever. **A permanently-red CI is the detector-nobody-hears failure this whole + # workflow exists to prevent**, so the fix is to give the gate what it needs rather than to + # let it skip: a silent skip would be the fail-open shape, and the gate would then run in + # NEITHER of its two automated homes. + # + # Depth 1, pinned to main, and only this repo's CHANGELOG is used. If the fetch fails the + # gate still reports INCONCLUSIVE rather than passing — not knowing is never a pass. + run: | + git init -q ../felhom-controller + cd ../felhom-controller + git remote add origin http://gitea.gitea-system.svc.cluster.local:3000/admin/felhom-controller.git + git fetch -q --depth 1 origin main + git checkout -q FETCH_HEAD + echo "controller CHANGELOG at $(git rev-parse --short=12 HEAD): $(head -1 CHANGELOG.md)" + - name: Run the gate entry point # The ONLY thing CI runs. No go build, no go test, no linting, no deploy — those are either # already reliably run by a person or none of CI's business. The exit code IS the result: