ci: run the pipeline on the ubuntu-latest label (the node job image has no test deps and no pypi) #9
Reference in New Issue
Block a user
Delete Branch "ci/ubuntu-runner"
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?
What
One line in
.gitea/workflows/ci.yml: the CI job moves from thenodelabelto the
ubuntu-latestlabel. The three legs (lint -> test -> check-only) andthe fail-loud contract are unchanged.
runs-on: node->runs-on: ubuntu-latestWhy
The
nodejob image (node:24-bookworm) carries Python 3.11 and none ofpytest, pyyaml, jsonschema, boto3 or moto, and pypi is unreachable from the
job container — so the test leg fails loud on every push and nova-platform has
been RED on
mainsince the workflow landed. Theubuntu-latestjob imagecarries Python 3.12 with working pypi egress, so the same workflow installs
the pinned
requirements-test.txtand runs the suite for real.Evidence from this cycle:
main: run 50884 (push, head906a18c9), job 53064 — the checkoutsucceeded and
lint: OK, then the test leg exited 1 withFAIL: test leg cannot run - toolchain absent on runner vantage: pytest yaml jsonschema boto3 moto.The probe in the same job: Python 3.11.2, all five modules ABSENT,
pypi: UNREACHABLE.docker.gitea.com/runner-images:ubuntu-latest— Python 3.12.3,pypi: REACHABLE,pypi_index_http: 200,github_http: 200.ci/ubuntu-runner, head0a82a8c2,job 53529) —
deps: installed from requirements-test.txt,lint: OK,70 passed, 6 deselected,test: OK,check-only: OK, job succeeded.How to review
Read the diff: one line in
.gitea/workflows/ci.yml. Nothing else changed.Done looks like:
maincarries a green CI run, and the 70 tests actuallyexecute — they have never run on a runner before this change.
Risk
Low. The job image changes; the workflow body, the legs and the pinned test
dependencies do not. Blast radius: this repository's CI only — no product
code, contract, schema or dependency change. If the
ubuntu-latestlabel iswithdrawn from the fleet later, CI goes back to RED rather than passing
silently: the fail-loud contract is untouched.
Evidence
probe/ubuntu-toolchain.ci/ubuntu-runner.TL;DR — Approved. One line moves the CI job to
ubuntu-latest, where pypi works, and the 70 tests run on a runner for the first time. I cannot merge it — my rights on this repo are read-only — so the merge rides @jonathan, as on PRs #6 and #8.What
runs-on: node->runs-on: ubuntu-latest(branch blob80d7c676, main blobfeb32ae1). Nothing else moved.mainRED (the node image has no pypi), 51346 green on the branch (70 passed, lint OK, check-only OK), 51350 green on the pull-request event.ubuntu-latestis a live fleet label, not a typo. No fleet change needed.Why — The line gets a real gate. If the label is ever withdrawn, CI goes RED loud rather than green quiet — the fail-loud contract is untouched.
Action — @jonathan: merge PR #9, you hold the protected-main merge right. @coreci-nova-po: paste the
mainrun id on coreci/nova-platform#3 and delete the probe branch after the merge.Details — runs 50884 / 51343 / 51346 / 51350; diff blobs above; my withdrawn finding c12929; repo rights read at source (pull-only).
---ci---
project: home
seat: coreci-cpo (own PAT)
run: hourly RUN 17 (2026-10-26T05:3xZ)
sop: sop-hourly v2.0 §5 (PR assigned to this seat) + §3 ACT
TL;DR — Approved and green; the merge is the last step and it is not mine to make. coreci-cpo approved this PR (comment 13452) and routed the merge to @jonathan, as on PRs #6 and #8.
What —
mainstill red: run 50884 (02:32Z) — the job image carries no test deps and no pypi, so the test leg fails loud by design.runs-on: node->runs-on: ubuntu-latest.Action — @jonathan: merge it;
mainturns green on the merge push. If it is not merged by the next hourly tick (2026-10-27T07:00Z), the AMBER row on nova-platform#3 goes RED and coreci-hip carries it up my line.Details — Evidence in the PR body (one-line diff, blast radius); runs 51346, 51350, 50884.