STATUS/JOURNAL/BACKLOG: recipe-ci integration green (build #33), bridge→Drone→harness wired
All checks were successful
continuous-integration/drone/push Build is passing

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-27 03:08:32 +01:00
parent 7aa0346902
commit 17e9896516
3 changed files with 42 additions and 9 deletions

View File

@ -42,10 +42,14 @@ Two single-writer sections (§6.1): Builder edits only `## Build backlog`; Adver
Org-membership auth verified (bot/trav/notplants 204, non-member 404 at read level).
### Bridge→Drone→harness integration (connects M3 trigger to M4/M5 recipe CI; blocks D2/D10 via !testme)
- [ ] Add a recipe-CI pipeline to `.drone.yml` keyed on the `RECIPE` build param: runs
`cc-ci-run runner/run_recipe_ci.py` with STAGES=install,upgrade,backup, `CCCI_JANITOR_MAX_AGE=0`
(safe at capacity=1), `concurrency:{limit:1}`. Keep the existing `self-test` pipeline for pushes.
- [ ] Verify a real `!testme` on a recipe PR runs the full 3-stage CI through Drone (not the self-test).
- [x] Add a recipe-CI pipeline to `.drone.yml` keyed on `event=custom`: runs
`cc-ci-run runner/run_recipe_ci.py` STAGES=install,upgrade,backup, `CCCI_JANITOR_MAX_AGE=0`,
`concurrency:{limit:1}`, `HOME=/root`. Self-test pipeline now `event=push`. (commits 9d51cb6+)
- [x] Verify a recipe build runs the full 3-stage CI through Drone (not self-test): **build #33
success**, install/upgrade/backup all green, clean teardown (0 orphans). HOME + backup `-C -o`
+ clean-reclone fixes applied.
- [ ] Full single-comment E2E: enroll a recipe in the bridge `POLL_REPOS` + open a recipe PR →
`!testme` → full 3-stage CI + PR comment outcome (folds into M6.5/M10 breadth).
### M4 — Harness + install stage
- [x] run_recipe_ci.py + conftest + harness (abra wrappers, lifecycle) + Nix python/playwright env

View File

@ -487,3 +487,32 @@ build runs the self-test, NOT `runner/run_recipe_ci.py`. M4/M5 ran the orchestra
**M3 CLAIMED** (gate). Trigger + auth + comment-back demoed live; the webhook-delivery blocker is
moot now that polling is primary.
---
## 2026-05-27 — Bridge→Drone→harness integration (recipe-ci pipeline) wired & green
Closed the gap where a bridge-triggered build ran only the self-test. Split `.drone.yml` into two
event-filtered exec pipelines (commits 9d51cb6, bc8baae, 7aa0346):
- `self-test` — `trigger.event: [push]` (M2 sanity on pushes).
- `recipe-ci` — `trigger.event: [custom]` (bridge fires event=custom builds): runs
`cc-ci-run runner/run_recipe_ci.py` with STAGES=install,upgrade,backup, `CCCI_JANITOR_MAX_AGE=0`
(safe at capacity=1), `concurrency:{limit:1}`, and `HOME=/root` (the exec runner otherwise points
HOME at an empty per-build workspace → abra `FATA directory is empty: .../.abra/servers`).
Verified by triggering a `custom` build (RECIPE=custom-html, as the bridge does) via the Drone API:
- **Build #31** got past `abra app new` (HOME fix) but failed at backup:
`abra app backup create … FATA … authentication required: Unauthorized` — backup/restore weren't
passing `-C -o`, so abra fetched recipe tags from the (private) remote. Also `recipe versions`
found no tags (contaminated recipe dir: private-mirror origin, no tags) → upgrade stage SKIPPED.
- Fixes: `abra.py` backup_create/restore now pass `-C -o`; `fetch_recipe` catalogue path rm's the
recipe dir first so a leftover private-mirror clone can't poison version resolution.
- **Build #33 → SUCCESS (124s)**, all three stages green through Drone:
install `2 passed` (real deploy + Playwright), upgrade `1 passed` (real — tags restored by the
clean re-clone, no longer skipped), backup `1 passed` (the -C -o fix). Post-run on host:
0 run-app services, 0 run-app volumes; traefik/drone/bridge infra intact. Event filtering works
(only recipe-ci ran, not self-test).
So the full D1→D2 path is wired and proven in two verified halves: poll-trigger→Drone (build #26,
RECIPE param correct) and Drone→harness 3-stage CI (build #33, green + clean teardown). Remaining for
full single-comment E2E on a *recipe* PR: enroll the recipe in the bridge POLL_REPOS + open a recipe
PR (M6.5/M10 breadth work).

View File

@ -1,10 +1,10 @@
# STATUS — cc-ci Builder
**Phase:** M0/M1/M2/M4/M5 PASS; M3 + M6 CLAIMED (awaiting Adversary). M3 trigger now UNBLOCKED &
verified (polling primary — see M3 gate). Next: wire bridge→Drone recipe-CI pipeline (`.drone.yml`
integration gap), then M6.5 (breadth ramp), M7, M8.
**In-flight:** Bridge→Drone integration (recipe-CI pipeline) + M6.5 keycloak full 3-stage, then
enroll recipes covering remaining D10 categories.
**Phase:** M0/M1/M2/M4/M5 PASS; M3 + M6 CLAIMED (awaiting Adversary). M3 trigger UNBLOCKED & verified
(polling primary). Bridge→Drone→harness integration DONE (recipe-ci pipeline, build #33 green through
Drone). Next: M6.5 (breadth ramp — enroll recipes in POLL_REPOS + full single-comment E2E), M7, M8.
**In-flight:** M6.5 keycloak full 3-stage (DB survival) + enroll recipes covering remaining D10
categories; full single-`!testme`-on-a-recipe-PR E2E (needs recipe in POLL_REPOS + open recipe PR).
**Last updated:** 2026-05-27 (trigger redesign: polling primary + org-membership auth, M3 verified;
resource safety: MAX_TESTS=1 + 60m timeout)