[ci] Switch build to Woodpecker dual-push (DockerHub + Forgejo)

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 <noreply@anthropic.com>
This commit is contained in:
Viktor Barzin 2026-05-07 15:58:55 +00:00
parent 473f11a766
commit 516d08f43a
2 changed files with 51 additions and 0 deletions

51
.woodpecker/build.yml Normal file
View file

@ -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