ci: make the workflow parse and run on a label the fleet serves (first run) #8

Merged
jonathan merged 4 commits from ci/standup-node into main 2026-10-26 02:31:16 +00:00
Collaborator

What

Make the merged CI workflow parse and run — three changes to
.gitea/workflows/ci.yml:

  • Quote two step values. - name: fetch (probe: stock actions/checkout@v4)
    and run: echo "=== CI stages complete: ... ===" were plain YAML scalars
    containing a colon followed by a space. That is invalid YAML, so Gitea
    could not parse the file and skipped the workflow silently.
  • Run it on node, the label the fleet's own workflows use. Both labels
    are served — a probe on node completed (run 50763) and a probe on
    ubuntu-latest completed (run 50820). The earlier "no runner picks that
    label up" reading was a slow queue, not an unserved label; it is corrected
    here.
  • Drop the push branch filter (branches: ["**"]) so every branch push
    runs the workflow — the shape the busiest workflow in the fleet uses.

Also adds docs/ci.md: what the three legs gate, what a loud failure means,
and the local equivalent.

Why

The workflow merged in PR #6 but never produced a run: every push left
actions/runs and actions/tasks at zero. A pipeline that never fires
reads as "CI is up" while nothing gates.

Evidence from this cycle:

  • three pushes of the merged workflow produced zero run and zero task records;
  • the same file with both values quoted was picked up by the runner (run
    50815, same conclusion as the real workflow);
  • first runs of this workflow: 50823 (branch push) and 50826 (PR event).

How to review

Read the diff of .gitea/workflows/ci.yml (three one-line changes) and
docs/ci.md (new, docs only). Nothing else changed.

Done looks like: the workflow parses, the label is one the fleet serves,
and the three legs are unchanged from PR #6.

Risk

Low. The workflow body is unchanged; only quoting, the runner label and the
trigger shape change. Blast radius: this repository's CI only. First run of
the fixed file: 50823 — conclusion failure (the twin run on nova-cli,
50822, is success).

Evidence

  • Task order: coreci/nova-platform#3.
  • Workflow merged: PR #6 (merge commit 2822f14d).
  • Probe runs: 50763 (node, completed success), 50820 (ubuntu-latest,
    completed success), 50815 (quoted file, picked up).
  • First runs of this workflow: 50823 (branch push) and 50826 (PR event) —
    conclusions posted on coreci/nova-platform#3.
## What Make the merged CI workflow parse and run — three changes to `.gitea/workflows/ci.yml`: - **Quote two step values.** `- name: fetch (probe: stock actions/checkout@v4)` and `run: echo "=== CI stages complete: ... ==="` were plain YAML scalars containing a colon followed by a space. That is invalid YAML, so Gitea could not parse the file and skipped the workflow silently. - **Run it on `node`**, the label the fleet's own workflows use. Both labels are served — a probe on `node` completed (run 50763) and a probe on `ubuntu-latest` completed (run 50820). The earlier "no runner picks that label up" reading was a slow queue, not an unserved label; it is corrected here. - **Drop the push branch filter** (`branches: ["**"]`) so every branch push runs the workflow — the shape the busiest workflow in the fleet uses. Also adds `docs/ci.md`: what the three legs gate, what a loud failure means, and the local equivalent. ## Why The workflow merged in PR #6 but never produced a run: every push left `actions/runs` and `actions/tasks` at zero. A pipeline that never fires reads as "CI is up" while nothing gates. Evidence from this cycle: - three pushes of the merged workflow produced zero run and zero task records; - the same file with both values quoted was picked up by the runner (run 50815, same conclusion as the real workflow); - first runs of this workflow: 50823 (branch push) and 50826 (PR event). ## How to review Read the diff of `.gitea/workflows/ci.yml` (three one-line changes) and `docs/ci.md` (new, docs only). Nothing else changed. Done looks like: the workflow parses, the label is one the fleet serves, and the three legs are unchanged from PR #6. ## Risk Low. The workflow body is unchanged; only quoting, the runner label and the trigger shape change. Blast radius: this repository's CI only. First run of the fixed file: 50823 — conclusion `failure` (the twin run on nova-cli, 50822, is `success`). ## Evidence - Task order: coreci/nova-platform#3. - Workflow merged: PR #6 (merge commit `2822f14d`). - Probe runs: 50763 (`node`, completed success), 50820 (`ubuntu-latest`, completed success), 50815 (quoted file, picked up). - First runs of this workflow: 50823 (branch push) and 50826 (PR event) — conclusions posted on coreci/nova-platform#3.
coreci-cpo was assigned by coreci-nova-po 2026-10-26 02:05:47 +00:00
coreci-nova-po added 4 commits 2026-10-26 02:05:47 +00:00
ubuntu-latest produces no run and no task record in this repository: three
push events with the merged workflow (branches docs/ci-pipeline and
ci-pipeline-docs) left actions/runs and actions/tasks at zero. A probe
branch with one trivial job per candidate label produced run 50763
(runs-on: node, completed success) and run 50762 (runs-on: employee-py,
still queued), so node is the label that serves this repo today.

run: hourly RUN 2 2026-10-26T02:0xZ
The workflow landed in PR #6 but nothing in the repo pointed a reader at it.
This states what the three legs gate, what a loud failure means, and the
local equivalent. No product behaviour changes.

run: hourly RUN 2 2026-10-26T02:0xZ
A push filter of branches: ["**"] produced zero run records in this
repository across three pushes (docs/ci-pipeline, ci-pipeline-docs,
ci/standup-node). The same push event with no branch filter created runs
50762 and 50763. The filter shape is therefore not matching branch names
here, and a pipeline that never fires reads as CI that is up while
nothing gates. The filter is now absent, so every branch push runs the
workflow, which is what the task order asked for.

run: hourly RUN 2 2026-10-26T02:1xZ
ci: quote the two plain scalars that made this workflow invalid YAML
CI / ci (push) Failing after 4s
CI / ci (pull_request) Failing after 3s
dc455c3c6c
A plain YAML scalar cannot contain a colon followed by a space. Two step
values did, so the whole file failed to parse and Gitea skipped it: every
push left actions/runs and actions/tasks at zero. Quoting both values
makes the workflow parse; run 50815 is the same file with both values
quoted and it was picked up by the runner.

run: hourly RUN 2 2026-10-26T02:2xZ
coreci-nova-po requested review from coreci-cpo 2026-10-26 02:05:47 +00:00
jonathan approved these changes 2026-10-26 02:31:11 +00:00
jonathan merged commit 906a18c98c into main 2026-10-26 02:31:16 +00:00
jonathan deleted branch ci/standup-node 2026-10-26 02:31:16 +00:00
Sign in to join this conversation.