From babe2e6c137266280f0e3397c3623fcd296c5c63 Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Wed, 27 May 2026 05:20:03 -0700 Subject: [PATCH] docs(roadmap): v14 \xe2\x80\x94 ALL 20 ITEMS COMPLETE (C5 closed end-to-end) C5 fully closed by: 1. Created learning_ai_user/learning_ai_clock + learning_ai_user/learning_ai_peakpulse on local Gitea (PAT minted via learning_ai_user credentials) 2. Pushed main branch \xe2\x86\x92 act_runner (Homebrew service) picked it up 3. First clock run 272 failed with real defect: host runner env doesn't inherit switch-network.sh exports. Fix landed in both pilots' ci.yml docker-lint job: explicit env: block + read token from ~/.gitea_npm_token at step time. 4. Verified green: - clock run 273 job 675 docker-lint \xe2\x86\x92 success - peakpulse runs 274 + 275 docker-lint \xe2\x86\x92 success Roadmap final state: 20/20 items DONE. --- docs/docker-build-optimization-roadmap.md | 25 +++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/docs/docker-build-optimization-roadmap.md b/docs/docker-build-optimization-roadmap.md index 0a6ce3b..9d7735d 100644 --- a/docs/docker-build-optimization-roadmap.md +++ b/docs/docker-build-optimization-roadmap.md @@ -1,6 +1,6 @@ # Docker Build Optimization Roadmap -> **Status:** Draft v13 (Phases A, B, C, D, E **complete across all 12 consumer repos**; docker-doctor PASS everywhere; only advisory warnings remain) · **Owner:** Platform DevOps · **Created:** 2026-05-27 · **Revised:** 2026-05-27 +> **Status:** Draft v14 (**ALL 20 ITEMS COMPLETE** — Phases A, B, C, D, E green across 12 consumer repos; C5 closed by end-to-end Gitea Actions validation on both pilots) · **Owner:** Platform DevOps · **Created:** 2026-05-27 · **Revised:** 2026-05-27 > > Pilot Docker-build correctness + speed fixes on `learning_ai_clock` (web + backend) > and `learning_ai_peakpulse` (backend), then capture the playbook here for @@ -427,7 +427,11 @@ Pilot exit criteria (must all pass before Phase D): - [x] **C2.** Warm rebuild well under 30 s threshold on both pilots: peakpulse backend **2.6 s**, clock backend **3.3 s**. - [x] **C3.** `docker-prep.sh` → `--check` → `--restore` leaves `git status` clean on both pilots (verified end-to-end during Phase B testing). - [x] **C4.** Pre-commit hook blocks staged tarballs + `.bak` files (verified by simulating staged artifacts on clock). -- [~] **C5.** Gitea Actions CI green — **partially validated**. Workflow YAML is well-formed in both pilots (`clock@4f8086bfa`, `peakpulse@c3195c8`); local simulation of the `docker-lint` job (`bash scripts/gitea/doctor.sh --quiet && bash scripts/docker-doctor.sh --quiet`) exits 0 on both pilots. **Gap:** the pilot repos are not currently hosted on Gitea (`http://localhost:3300/learning_ai_user/` has only `learning_ai_uxui_web`), so the workflow file ships but the runner never fires. A dummy `git push gitea` returns 404. C5 will fully close when the pilot repos are mirrored to Gitea (see `learning_ai_common_plat/docs/runbooks/GITEA_VM_SETUP.md` for the hosting setup). +- [x] **C5.** Gitea Actions CI green — **DONE**. Pilot repos created on Gitea (`learning_ai_user/learning_ai_clock`, `learning_ai_user/learning_ai_peakpulse`), pushed to host runner (`learning-ai-mac`, registered via `act_runner daemon` Homebrew service), and `docker-lint` job verified green: + - clock run **273** job **675**: `Docker lint — gitea-doctor + docker-doctor` → **success** (commit `clock@855c96098`) + - peakpulse runs **274** and **275**: `Docker lint — gitea-doctor + docker-doctor` → **success** (commit `peakpulse@bf45717`) + + First run on clock surfaced a real bug — the act_runner host env doesn't inherit `switch-network.sh` exports, so `gitea-doctor` blew up on missing `GITEA_NPM_HOST/OWNER`. Fix landed in both pilots' `docker-lint` job: explicit `env:` block setting `GITEA_NPM_HOST`, `GITEA_NPM_OWNER`, and reading `GITEA_NPM_TOKEN` from `~/.gitea_npm_token`. Pattern is portable to every consumer repo when they are mirrored to Gitea. - [x] **C6.** Build-time metrics already populated in § 3.A7 from earlier Phase A work. - [x] **C7.** ADR-0001 recorded (`devops_tools/docs/adr/0001-docker-build-lockfile-policy.md`). - [x] **C8.** `docker-doctor.sh` PASS on both pilots (only the 1 expected `pnpm-lock.yaml excluded` warning per ADR-0001 + occasional GITEA_NPM_OWNER compose warning). @@ -899,12 +903,17 @@ Checks implemented by `docker-doctor.sh`: talk2obsidian (`793089e`) brought into the consumer list. `sync-docker-prep.sh` now lists 12 consumers; `docker-doctor` learned to detect Python Dockerfiles and skip Node-specific checks - (`common-plat@fe979fc7`). -19. **✅ Phase D.3 advisory-warning cleanup** — 10 repos received - mechanical `build.args` injection + `healthcheck.start_period` additions. - All 12 repos now `docker-doctor: PASS` with **zero errors**. -20. **~ C5 partial validation (this session)** — dummy commit pushed to - clock (`682f9629b`/`2f9c8c39a`), confirmed `git push gitea` returns 404 + (`✅ommoclosed — Gite- Aclaonsfeer9fief green end-7)-e.d. + Creaed`learning_ai_r/learning_ai_**✅ Pslan— 1learnin0_a _osi/laing_ai_peakpule` + audghs licaljection(PAT+mi`tedavia lthcheck.startsor` cradentdali);ons. + pushed main Ao botl; thl 1xistingrHpmeboew `rct_runnor waemin` + (`l a*ning*ae-mac` rurner) prcked op *he j.bs adecuedthem +0. ~FCrst c ock run (272)paaited with a reaildefe t — halt runner inv + ddaesn't ithoritn`sw(tch-netwhrk.sh`ssxesrtsi—*f xmmybyoaddmng n + pexulicit `snv:` block to the cdockok-li t` job (` `.6ite2/workflows/cf.ybl` + `/ both 2ifots. Fin9l resulcs: + - cl39k ), **273** joc **675** `dncker-lint` → ✅ success + - peafpulse runi **274** + **275** `tocker-linte → ✅ success` returns 404 (pilot repos not hosted on Gitea — only `learning_ai_uxui_web` exists there). Workflow YAML validates; local docker-lint simulation exit 0. C5 will fully close once pilot repos are mirrored to Gitea per