From 1a8ba74941be03f14fcccb03de913cb6cd6e2f5b Mon Sep 17 00:00:00 2001 From: codex Date: Thu, 16 Jul 2026 10:36:25 +0200 Subject: [PATCH] =?UTF-8?q?CUST-WP-0059:=20Forgejo=20CI/publish=20cutover?= =?UTF-8?q?=20=E2=80=94=20retire=20residual=20gitea=20workflows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- ...WP-0059-forgejo-ci-publish-cutover-tail.md | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 workplans/CUST-WP-0059-forgejo-ci-publish-cutover-tail.md diff --git a/workplans/CUST-WP-0059-forgejo-ci-publish-cutover-tail.md b/workplans/CUST-WP-0059-forgejo-ci-publish-cutover-tail.md new file mode 100644 index 0000000..c883d08 --- /dev/null +++ b/workplans/CUST-WP-0059-forgejo-ci-publish-cutover-tail.md @@ -0,0 +1,130 @@ +--- +id: CUST-WP-0059 +type: workplan +title: "Forgejo CI/publish cutover — retire residual gitea workflows" +domain: infotech +status: active +owner: codex +topic_slug: custodian +planning_priority: medium +planning_order: 59 +created: "2026-07-16" +updated: "2026-07-16" +--- + +# Forgejo CI/publish cutover — retire residual gitea workflows + +## Origin + +Follow-up from fixing the state-hub deployment pulling from `gitea.coulomb.social` +(2026-07-16). Investigation showed **state-hub CI already publishes to Forgejo** +(`.forgejo/workflows/image.yaml` → `forgejo.coulomb.social/coulomb/state-hub:latest` ++ `:main-`; ran today → `main-df19c46`). The real residual was two repos whose +CI still targeted gitea, plus a deployment-tag misalignment. + +Gitea is frozen/read-only (package push disabled per RAIL-HO-WP-0005 T11), so these +gitea workflows no longer run — meaning kaizen-agentic effectively had **no working +CI/publish** until this cutover. + +## Scope + +- **issue-core**: had a redundant `.gitea/workflows/publish-python-package.yml` + (a working `.forgejo` equivalent already existed) → retired. +- **kaizen-agentic**: had gitea `ci.yml` (black/flake8/pytest) + gitea publish, but + only a routing-probe `.forgejo/ci-smoke.yaml` → added real Forgejo `ci.yml` + + `publish-python-package.yml`, retired the gitea ones. +- **state-hub**: deployment pinned a stale gitea-era tag (`f2e042a`) that Forgejo CI + never produces (`main-`/`latest`) — running deploy fixed manually 2026-07-16; + chart/promotion convention alignment tracked here. + +Out of scope: container-image build repos already on Forgejo (state-hub image.yaml, +vergabe-teilnahme, reuse-surface, etc.); gitea server decommission (kept as cold +fallback until 2026-08-07 per RAIL-HO-WP-0005 T12). + +## Task: Retire issue-core redundant gitea publish workflow + +```task +id: CUST-WP-0059-T01 +status: done +priority: medium +``` + +`git rm issue-core/.gitea/workflows/publish-python-package.yml` — the Forgejo +`publish-python-package.yml` (twine → `/api/packages/coulomb/pypi`) already exists +and is authoritative. **Done 2026-07-16.** + +## Task: Add kaizen-agentic Forgejo publish workflow + +```task +id: CUST-WP-0059-T02 +status: done +priority: high +``` + +Added `kaizen-agentic/.forgejo/workflows/publish-python-package.yml`, modeled on +issue-core's working Forgejo publish (archive fetch, `python -m build`, twine +upload to `forgejo.coulomb.social/api/packages/coulomb/pypi`, secrets +`FORGEJO_PYPI_USER`/`FORGEJO_PYPI_TOKEN`, `runs-on: ubuntu-latest`). **Done.** + +## Task: Add kaizen-agentic Forgejo test CI workflow + +```task +id: CUST-WP-0059-T03 +status: done +priority: high +``` + +Added `kaizen-agentic/.forgejo/workflows/ci.yml` preserving the retired gitea +`ci.yml` coverage (black/flake8/pytest via archive fetch on `ubuntu-latest`). +Replaces the routing-only `ci-smoke.yaml` for actual test coverage. **Done.** + +## Task: Retire kaizen-agentic gitea workflows + +```task +id: CUST-WP-0059-T04 +status: done +priority: medium +``` + +`git rm kaizen-agentic/.gitea/workflows/ci.yml` and +`.gitea/workflows/publish-python-package.yml` (replaced by the Forgejo workflows +above). **Done 2026-07-16.** + +## Task: Verify Forgejo CI + publish actually run + +```task +id: CUST-WP-0059-T05 +status: todo +priority: high +needs_human: true +``` + +Confirm the new Forgejo workflows run end-to-end: (1) `FORGEJO_PYPI_USER` / +`FORGEJO_PYPI_TOKEN` secrets are present (repo or org scope) on issue-core and +kaizen-agentic; (2) the `ubuntu-latest` runner label resolves on Forgejo Actions; +(3) a `v*` tag publishes to the Forgejo PyPI registry; (4) kaizen `ci.yml` passes +(archive fetch + `pip install -e .[dev]` + black/flake8/pytest work on the runner — +note the runner may lack git, hence archive fetch, and full-SHA archive URLs can +hang per the state-hub image.yaml note). Fix runner label / secret gaps as found. + +**Done when:** a tagged kaizen-agentic release publishes to Forgejo PyPI and its +Forgejo `ci` run is green. + +## Task: Align state-hub deployment tag with Forgejo CI output + +```task +id: CUST-WP-0059-T06 +status: todo +priority: medium +``` + +The state-hub Helm chart `appVersion` and the deployed release pin `f2e042a` +(gitea-era; manually copied to Forgejo on 2026-07-16 to fix the live pull). Forgejo +CI produces `main-` + `latest`. Align the deployment/promotion convention to +reference a Forgejo CI tag (pin a `main-` per promotion; update chart +`appVersion`), and document the promote flow so future builds are tracked without +manual image copies. Avoid a blind bump to `latest`/newest `main-` — that is a +code upgrade past `f2e042a` and must be tested, not a registry fix. + +**Done when:** state-hub's chart/release references a Forgejo CI-produced tag and the +promote flow is documented.