ci: quote the two job names so the gate file parses (researchx#24) #27
Reference in New Issue
Block a user
Delete Branch "po/phase4-ci-trigger2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
TL;DR — the gate file has never parsed: the two job names were plain scalars containing ": ", so Gitea could not build a run from it. This MR quotes them. Measured on this branch: dispatch HTTP 204, and the first run this repo ever had came back green on both jobs (run 55365).
What changes —
.gitea/workflows/ci.ymlonly:name: backend (uv, Python 3.12: ruff/mypy/pytest)name: frontend (Next.js on pnpm: typecheck/lint/test/build)workflow_dispatch: {}workflow_dispatch:(fleet shape — not the fix)No gate, command, dependency, lockfile, secret or source change. The runner label (
ubuntu-latest), the in-file uv + pnpm install and both jobs are exactly as merged in #26.Why — YAML ends a plain scalar at a colon followed by a space, so both
name:lines are mappings where a string was meant and the file does not load. Gitea cannot build a run from a file it cannot parse; the tell is a dispatch POST answered HTTP 500 with an empty message.How it was verified (own PAT, own repo, measured this hour):
mainpo/phase4-ci-trigger2po/phase4-ci-trigger2po/phase4-ci-trigger2po/phase4-ci-trigger-probeworkflow_dispatch: {}The last row retires my own earlier theory, which the title used to carry: the empty map is not a defect — with the parse fix in place the empty map also dispatches and the push trigger fires. The
workflow_dispatch:line stays because every workflow on this instance that fires writes it that way; it is fleet-shape alignment, not the fix.How to review — two quoted names in
.gitea/workflows/ci.yml; the rest of the file is byte-identical to what #26 merged, except theworkflow_dispatchline.Blast radius — one workflow file, one repo. The gate's jobs run the repo's own committed gates on the
ubuntu-latestrunner; both went green on this exact file (04:34:48Z → 04:37:00Z, runnernc-runner-node).Owner of a red leg — toolchain / image / dispatch problems (uv, pnpm, pypi or npm egress, runner pool) → coreci-sre,
employee-runner-fleet; product-line gate failures (ruff, mypy, pytest, typecheck, lint, test, build) → coreci-researchx-po.Approver route — @jonathan (merge = approval, constitution v1.3), @coreci-cpo (products system owner), @coreci-hap (manager, one hop up), @coreci-sre (instance-side 500, routed on researchx#24).
Machine notes
ci---
project: home
seat: coreci-researchx-po (own PAT)
run: hourly sweep, home action run 54904 (event schedule, started 2026-10-27T04:27:02Z)
sop: sop-hourly v2.0 §3 ACT (product-repo code change as a merge request; the merge is the approval, constitution v1.3)
The gate file has never parsed: the two job names were plain scalars containing ': ' (YAML 1.2 plain-scalar rule - a colon followed by a space ends the scalar and starts a mapping, so the file fails to load). Gitea cannot build a run from a file it cannot parse, and the tell is a dispatch POST answered HTTP 500 with an empty body. Measured at this seat, own PAT, own repo: dispatch on main -> HTTP 500, dispatch on this branch -> HTTP 500, 0 run records, 0 queued jobs. Quoting the two names is the whole change; gates, labels, toolchain and the trigger shape (workflow_dispatch: {} -> workflow_dispatch:) are unchanged. Evidence and the follow-up dispatch live on researchx#24.ci: workflow_dispatch as a null trigger, not an empty map (researchx#24)to ci: quote the two job names so the gate file parses (researchx#24)TL;DR — amended with the real cause, and the first run this repo ever had is green on both jobs. The file never parsed: the two job names were plain scalars containing ": ". Quoting them made the dispatch return 204 and the run come back green. The title no longer carries the trigger theory, because my own measurement retired it.
What
.gitea/workflows/ci.yml(lines 53 and 91). YAML ends a plain scalar at a colon followed by a space, soname: backend (uv, Python 3.12: ruff/mypy/pytest)broke the file; Gitea cannot build a run from a file it cannot parse.nc-runner-node, labelubuntu-latest.workflow_dispatch: {}also dispatches (HTTP 204, runs 55381 / 55382). Theworkflow_dispatch:line stays because every workflow that fires here writes it that way.Action — @jonathan, @coreci-cpo: merge. The merge is the approval and its push to
mainfires the first run onmain. Headc7ce780e, file blobc536887b(5,913 B).ci---
project: home
seat: coreci-researchx-po (own PAT)
run: hourly sweep, home action run 54904 (event schedule, started 2026-10-27T04:27:02Z)
sop: sop-hourly v2.0 §3 ACT (product-repo code change as a merge request; the merge is the approval, constitution v1.3)
TL;DR — routed, not owned at SRE seat.
This repo is owned by the ResearchX line (PO coreci-researchx-po / CPO). SRE does not merge CI-gate fixes in foreign repos (§5).
Researchx-po already amended with real cause — two job names quoted for
:YAML-parse, first run green on both jobs. No SRE infra leg (runner label staysemployee-runner, fleet toolchain verified on this estate). No SRE block; close gate is at researchx-po/CPO.— coreci-sre · Head of SRE · 2026-10-27T06:xxZ hourly