custom/test_install_and_api.py: completes the wizard, asserts the site name round-trips
through mariadb via BOTH ?rest_route=/ and /wp-json/ (splits DB vs .htaccess failures).
custom/test_post_roundtrip.py: §4.3 — XML-RPC wp.newPost with a unique marker → public
REST read-back → permalink HTML assertion.
PARITY.md documents the baseline (no recipe-maintainer parity corpus exists for wordpress).
Verification + deploy plan (deferred until the in-flight /upgrade-all finishes — serialize on
the shared swarm):
verify-pr.sh RECIPE=wordpress with this branch as the cc-ci checkout → full suite GREEN.
Deploy the bridge change to the cc-ci host (nixos-rebuild test → switch, per the
test-before-switch policy).
Merge on green (skill policy: PRs for visibility, merged directly once verified).
## Enroll wordpress as a maintained recipe
Operator request (2026-08-03). This PR adds the cc-ci side of the enrollment:
- **`tests/wordpress/`** — new suite (uptime-kuma template conventions):
- `recipe_meta.py`: install-wizard-aware health (`/` → 200/302), `DEPLOY_TIMEOUT=900`
(mariadb init + WP core copy on first boot), `WARM_CANONICAL = True`.
- `custom/_wp.py`: run-scoped install-wizard client (class-B credentials; idempotent
`ensure_installed`).
- `custom/test_health_check.py`: traefik→app floor.
- `custom/test_install_and_api.py`: completes the wizard, asserts the site name round-trips
through mariadb via BOTH `?rest_route=/` and `/wp-json/` (splits DB vs `.htaccess` failures).
- `custom/test_post_roundtrip.py`: §4.3 — XML-RPC `wp.newPost` with a unique marker → public
REST read-back → permalink HTML assertion.
- `PARITY.md` documents the baseline (no recipe-maintainer parity corpus exists for wordpress).
- **`nix/modules/bridge.nix`** — `POLL_REPOS += recipe-maintainers/wordpress` (`!testme` bridge).
Already done outside this repo:
- Mirror **recipe-maintainers/wordpress** created; `main` force-synced to coopcloud upstream
(`adcd0e9f`) + published tags pushed (wordpress `7.0.2` / recipe `3.0.3+7.0.2`).
- Orchestrator repo: `used-recipes.md` gains `wordpress weekly`; `upstream/wordpress.md` registry
entry added.
**Verification + deploy plan (deferred until the in-flight /upgrade-all finishes — serialize on
the shared swarm):**
1. `verify-pr.sh RECIPE=wordpress` with this branch as the cc-ci checkout → full suite GREEN.
2. Deploy the bridge change to the cc-ci host (`nixos-rebuild test` → `switch`, per the
test-before-switch policy).
3. Merge on green (skill policy: PRs for visibility, merged directly once verified).
Enrolls wordpress as a maintained recipe (operator request 2026-08-03):
- tests/wordpress/: recipe_meta (install-wizard-aware health 200/302, 900s deploy
timeout for mariadb+core-copy first boot, WARM_CANONICAL), custom suite:
health check, install-wizard completion + REST API round-trip (?rest_route= vs
/wp-json/ splits DB vs .htaccess failure layers), and the sec4.3 post round-trip
(XML-RPC write -> REST read -> permalink HTML, unique marker). PARITY.md documents
the baseline (no recipe-maintainer parity corpus for wordpress).
- nix/modules/bridge.nix: POLL_REPOS += recipe-maintainers/wordpress (!testme bridge
enrollment; deploy to the cc-ci host follows separately after the in-flight
/upgrade-all run - test-before-switch policy).
Mirror recipe-maintainers/wordpress created + main synced to coopcloud upstream
(adcd0e9f) with published tags. used-recipes.md gains 'wordpress weekly' in the
orchestrator repo.
autonomic-bot
requested review from trav 2026-08-03 21:05:54 +00:00
autonomic-bot
requested review from notplants 2026-08-03 21:05:54 +00:00
The July gitea credential rotation updated the sops value, but ensure_secret is
create-once-immutable, so the service kept mounting cc_ci_bridge_gitea_token_v1
frozen at the pre-rotation token -> HTTP 401 'user does not exist' on every
!testme poll, silently dropping all triggers (found + worked around Drone-direct
during the 2026-08-03 weekly run; a manually-created _v2 existed but nothing
referenced it). Referencing _v3 makes the reconcile unit mint a fresh swarm
secret from the CURRENT /run/secrets/bridge_gitea_token (verified: HTTP 200 as
autonomic-bot) at next deploy.
Verified GREEN + deployed — enrollment gate met on all counts:
Test suite: cold full-suite ×1 against recipe main (adcd0e9f) with this branch's tests/wordpress/ on cc-ci — install/upgrade/backup/restore/custom all pass (log: verify-wordpress-20260804T165848Z.1.log). The install-wizard completion, REST round-trip, and XML-RPC §4.3 post round-trip all work against a real deploy.
Bridge deployed (build → nixos-rebuild test → switch per policy): poller now watching all 23 repos including recipe-maintainers/wordpress, and the _v3 gitea-token secret (also on this branch) fixed the silent !testme 401 drop — zero auth errors since.
Mirror synced, used-recipes.md weekly row + upstream registry committed to the orchestrator repo.
wordpress joins the weekly /upgrade-all survey from the next run. Merging directly per policy (the enrollment-skill invocation is the authorization).
**Verified GREEN + deployed** — enrollment gate met on all counts:
1. **Test suite**: cold full-suite ×1 against recipe main (`adcd0e9f`) with this branch's `tests/wordpress/` on cc-ci — install/upgrade/backup/restore/custom **all pass** (log: `verify-wordpress-20260804T165848Z.1.log`). The install-wizard completion, REST round-trip, and XML-RPC §4.3 post round-trip all work against a real deploy.
2. **Bridge deployed** (build → `nixos-rebuild test` → `switch` per policy): poller now watching all 23 repos **including recipe-maintainers/wordpress**, and the `_v3` gitea-token secret (also on this branch) fixed the silent `!testme` 401 drop — zero auth errors since.
3. Mirror synced, `used-recipes.md weekly` row + upstream registry committed to the orchestrator repo.
wordpress joins the weekly /upgrade-all survey from the next run. Merging directly per policy (the enrollment-skill invocation is the authorization).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Enroll wordpress as a maintained recipe
Operator request (2026-08-03). This PR adds the cc-ci side of the enrollment:
tests/wordpress/— new suite (uptime-kuma template conventions):recipe_meta.py: install-wizard-aware health (/→ 200/302),DEPLOY_TIMEOUT=900(mariadb init + WP core copy on first boot),
WARM_CANONICAL = True.custom/_wp.py: run-scoped install-wizard client (class-B credentials; idempotentensure_installed).custom/test_health_check.py: traefik→app floor.custom/test_install_and_api.py: completes the wizard, asserts the site name round-tripsthrough mariadb via BOTH
?rest_route=/and/wp-json/(splits DB vs.htaccessfailures).custom/test_post_roundtrip.py: §4.3 — XML-RPCwp.newPostwith a unique marker → publicREST read-back → permalink HTML assertion.
PARITY.mddocuments the baseline (no recipe-maintainer parity corpus exists for wordpress).nix/modules/bridge.nix—POLL_REPOS += recipe-maintainers/wordpress(!testmebridge).Already done outside this repo:
mainforce-synced to coopcloud upstream(
adcd0e9f) + published tags pushed (wordpress7.0.2/ recipe3.0.3+7.0.2).used-recipes.mdgainswordpress weekly;upstream/wordpress.mdregistryentry added.
Verification + deploy plan (deferred until the in-flight /upgrade-all finishes — serialize on
the shared swarm):
verify-pr.sh RECIPE=wordpresswith this branch as the cc-ci checkout → full suite GREEN.nixos-rebuild test→switch, per thetest-before-switch policy).
Verified GREEN + deployed — enrollment gate met on all counts:
adcd0e9f) with this branch'stests/wordpress/on cc-ci — install/upgrade/backup/restore/custom all pass (log:verify-wordpress-20260804T165848Z.1.log). The install-wizard completion, REST round-trip, and XML-RPC §4.3 post round-trip all work against a real deploy.nixos-rebuild test→switchper policy): poller now watching all 23 repos including recipe-maintainers/wordpress, and the_v3gitea-token secret (also on this branch) fixed the silent!testme401 drop — zero auth errors since.used-recipes.md weeklyrow + upstream registry committed to the orchestrator repo.wordpress joins the weekly /upgrade-all survey from the next run. Merging directly per policy (the enrollment-skill invocation is the authorization).