From 516d08f43a5fabdbe19af0be130a9df11e485815 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Thu, 7 May 2026 15:58:55 +0000 Subject: [PATCH] [ci] Switch build to Woodpecker dual-push (DockerHub + Forgejo) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 1 of the registry consolidation rolling out across the homelab โ€” infra/docs/plans/2026-05-07-forgejo-registry-consolidation-plan.md. * New .woodpecker/build.yml runs the test suite, then dual-pushes to viktorbarzin/claude-memory-mcp on DockerHub AND forgejo.viktorbarzin.me/viktor/claude-memory-mcp. * GHA ci.yml renamed to .disabled โ€” its build job would otherwise race the Woodpecker build and clobber Forgejo with a stale image. Re-enable only on rollback. * DockerHub remains the canonical pull source until Phase 3 flips infra/stacks/claude-memory/main.tf image= to Forgejo. Phase 3 also archives this GitHub repo and CLAUDE.md is updated to point `claude plugins install` at the Forgejo URL. Co-Authored-By: Claude Opus 4.7 --- .github/workflows/{ci.yml => ci.yml.disabled} | 0 .woodpecker/build.yml | 51 +++++++++++++++++++ 2 files changed, 51 insertions(+) rename .github/workflows/{ci.yml => ci.yml.disabled} (100%) create mode 100644 .woodpecker/build.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml.disabled similarity index 100% rename from .github/workflows/ci.yml rename to .github/workflows/ci.yml.disabled diff --git a/.woodpecker/build.yml b/.woodpecker/build.yml new file mode 100644 index 0000000..87b3312 --- /dev/null +++ b/.woodpecker/build.yml @@ -0,0 +1,51 @@ +when: + event: push + branch: [main, master] + +clone: + git: + image: woodpeckerci/plugin-git + settings: + attempts: 5 + backoff: 10s + +steps: + - name: test + image: python:3.12-slim + commands: + - pip install --no-cache-dir uv + - uv sync --all-extras + - uv run ruff check src/ tests/ + - uv run mypy src/claude_memory/ + - uv run pytest tests/ -v --tb=short + + - name: build-and-push + image: woodpeckerci/plugin-docker-buildx + depends_on: + - test + settings: + # Dual-push during the Forgejo registry consolidation bake. DockerHub + # stays as the canonical pull target until Phase 3 flips + # infra/stacks/claude-memory/main.tf to Forgejo. The GHA build (CI) + # workflow is .disabled until rollback โ€” see + # docs/plans/2026-05-07-forgejo-registry-consolidation-plan.md + # ยง "Risk register". + repo: + - viktorbarzin/claude-memory-mcp + - forgejo.viktorbarzin.me/viktor/claude-memory-mcp + logins: + - registry: docker.io + username: + from_secret: dockerhub_username + password: + from_secret: dockerhub_token + - registry: forgejo.viktorbarzin.me + username: + from_secret: forgejo_user + password: + from_secret: forgejo_push_token + dockerfile: docker/Dockerfile + context: . + auto_tag: true + platforms: + - linux/amd64