# STATUS — cc-ci Phase 5 Builder **Phase:** 5 — Verify `/recipe-upgrade` + `testme-on-pr.sh` end-to-end flow **SSOT:** `/srv/cc-ci/cc-ci-plan/plan-phase5-verify-upgrade-flow.md` **Started:** 2026-05-31 ## Current focus V4 next (regression loop); then V2 (known-RED), V5, V6, V8, V8a. ## Fixes applied (A5-1, A5-2, related) **A5-2 FIX:** `bridge/bridge.py` commit `5d48436`: `post_commit_status()` added. Bridge POSTs Gitea commit status on recipe PR's head SHA (pending→trigger, success/failure→finish). **A5-1 FIX:** `nix/modules/bridge.nix` commit `5d48436`: `recipe-maintainers/custom-html-tiny` added to POLL_REPOS. Bridge rebuilt: `cc-ci-bridge:3761c4221042` (via `nixos-rebuild build --flake path:/root/builder-clone#cc-ci` on cc-ci + `cc-ci-reconcile-bridge`). **open-recipe-pr.sh FIX (orchestrator repo):** `0df57c6` — replaced python3 with jq (cc-ci has jq, not python3). **testme-on-pr.sh FIX (orchestrator repo):** `6910b19` — reads cc-ci/testme context URL instead of first-status URL (fixes wrong BUILD URL when multiple statuses exist). ## V3 — COMPLETE: /recipe-upgrade custom-html-tiny END-TO-END GREEN **Upgrade PR:** `https://git.autonomic.zone/recipe-maintainers/custom-html-tiny/pulls/2` - Branch: `upgrade-1.1.0+2.42.0`, head sha `156a49ac` - Changes: compose.yml sws 2.38.0→2.42.0; compose.git-pull.yml alpine/git v2.36.3→v2.52.0; version 1.0.1+2.38.0→1.1.0+2.42.0 - !testme posted → Drone build #29 triggered → SUCCESS (install PASS, upgrade PASS, backup N/A) - Commit status: `cc-ci/testme state=success target=https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/29` - `testme-on-pr.sh custom-html-tiny 2 POST=0` → `VERDICT=GREEN BUILD=https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/29` - PR comment updated by bridge with 🌻 result **V7 partial:** PR #1 (serve-hidden-files) auto-closed as superseded when PR #2 opened. Mirror main force-synced to upstream (435df8fc). Full V7 evidence complete via this run. **V1/V2 partial evidence:** - V1: !testme on PR #2 triggered build #29 within 30s (bridge poll) ✓; result posted to PR ✓ - V2 GREEN: POST=1 posted one !testme; POST=0 polled and returned VERDICT=GREEN BUILD= ✓ - V2 RED: still needed (V4 will provide this) ## V4 — TODO (regression loop) Plan: create a regression branch on custom-html-tiny mirror with a bad image tag → open PR → POST=1 !testme → VERDICT=RED → push fix → POST=1 !testme → VERDICT=GREEN. This is within the 3-run budget and provides V2 RED evidence. ## Verification item status | Item | Status | Evidence | |---|---|---| | V1 — !testme trigger + result-back | PARTIAL | build #29 triggered in <30s; commit status + PR comment posted ✓ | | V2 — testme-on-pr.sh reads verdict | PARTIAL | GREEN ✓ (build #29); RED pending (V4) | | V3 — /recipe-upgrade sandbox GREEN | DONE | custom-html-tiny PR#2; build #29 SUCCESS | | V4 — 3-iter regression loop | TODO | | | V5 — stale-test DEFAULT = comment | TODO | | | V6 — --with-tests opens+verifies cc-ci test PR | TODO | | | V7 — mirror reconciliation | DONE | PR#1 closed as superseded; main=upstream ✓ | | V8 — /upgrade-all DEFAULT run | TODO | | | V8a — cc-ci-upgrader agent | TODO | | | V9 — cleanup | TODO | | ## Phase 5 gates (None claimed yet — V4 next.) ## Blocked (none)