Repository navigation
ci: prove a machine from zero converges and stays converged - #2331
Conversation
A from-zero job on fresh macos-latest and ubuntu-latest runners: the PR's dotf on PATH, install.sh, a check that the first converge succeeded, dotf doctor, then a second converge that must report zero changes. Path-filtered to the install path on pull requests and run on every push to main; not required until it has been green for a while.
# Conflicts: # specs/PLAT-001b-one-entrypoint/verification.md
# Conflicts: # specs/PLAT-001b-one-entrypoint/tasks.md
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 59 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
⚙️ Agent run details
|
Review triageReviewed by PR-Agent at a9d9937: no major issues, no security concerns, no inline findings. CodeRabbit did not review: rate-limited.
|
The job stayed red until S2, P7, T3 and the kubectl pin land, which hid any new failure among the known ones. Doctor now runs through a gate: a FAIL the list names for the OS passes, any other FAIL fails, and an entry no FAIL matches fails as stale, so the list only shrinks. Each entry names its owner on the #2013 ledger.
#2013 X1, PLAT-001b PR 6 (
specs/PLAT-001b-one-entrypoint). Draft: the first runs decide what else goes into this PR.What
.github/workflows/from-zero.yml, run onmacos-latestandubuntu-latest:dotfsource build goes on PATH. install.sh keeps adevbuild, so the job tests this tree's converge../install.shruns the first converge.last.jsonis assertedresult == okwith no failed entry, so a converged first run is checked before idempotence (lesson 328).dotf doctor --scope machineruns. A runner has no identity and none is fabricated for it: the identity checks print a SKIP naming their restore step (PLAT-001: [EPIC] OS-agnostic from-zero bootstrap — macOS bring-up as the forcing function #2013 D10, feat(doctor): scope the sweep to machine checks with --scope machine #2337).dotf convergemust reportchanged == 0.The trigger is the owner's (2026-10-10): pull requests that touch the install path, and every push to main. The check is not required. Nothing uses
continue-on-error: a red run that names its cause is the design. Every cause from the first runs becomes a #2013 ledger row, or gets fixed here if it is the job's own.Order note: the owner placed P5c (agents through mise; first labelled P5b) before X1. PR-B is waiting on release 0.68.0 (#2329, then #2314), so X1 goes first. The agent-presence assertion is recorded in
tasks.mdas the line PR-B adds.Doctor gate
Doctor on a fresh runner still FAILs on findings #2013 already owns (kubectl on darwin, the hive daemon,
.profile/.inputrcon darwin,~/Applicationsand*_HOMEon linux)..github/scripts/from-zero-doctor-gate.shgates the step onfrom-zero-known-failures.txt, as test-windows'doctor-gate.ps1does: a listed FAIL passes, an unlisted FAIL fails, and a listed entry no FAIL matches fails as stale, so the list only shrinks. Each entry names its owner. Replayed on run 38115559203: 4 known on darwin, 8 on linux, 0 new, 0 stale.tests/from-zero-doctor-gate.batscovers the verdicts under bash and zsh.Knowledge
docs/runbooks/guide-new-machine.md: its CI line now names this job'sdotf doctor --scope machine(the runbook itself landed in feat(doctor): scope the sweep to machine checks with --scope machine #2337)