Commit graph

11 commits

Author SHA1 Message Date
Viktor Barzin
52d2fc68c3 ci: move image build off-infra to GHA -> ghcr (ADR-0002)
Some checks are pending
Build and Push / lint-and-test (push) Waiting to run
Build and Push / build (push) Blocked by required conditions
Build and Push / deploy (push) Blocked by required conditions
Build and Push / notify-failure (push) Blocked by required conditions
Generated by infra/scripts/offinfra-onboard: GHA builds+tests on the
GitHub mirror, pushes ghcr.io/viktorbarzin/claude-memory-mcp, then triggers the
Woodpecker deploy (repo 78). Old in-cluster build pipeline
removed: .woodpecker/build.yml .woodpecker/build-fallback.yml

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-13 02:35:29 +00:00
Viktor Barzin
03f0efcdff ci: auto-deploy on push (owned-app model) — no more manual kubectl set image
Some checks failed
ci/woodpecker/push/build Pipeline was canceled
Adopt the documented owned-app deploy model (infra CLAUDE.md, ref
tuya_bridge/.woodpecker.yml): build.yml now tags the image with the
8-char commit SHA (alongside :latest) and adds a `deploy` step that
`kubectl set image`s the deployment to that SHA tag + waits for rollout.
A unique SHA tag forces a fresh pull under the deployment's
imagePullPolicy: IfNotPresent (a re-pushed :latest would not). The
woodpecker-agent SA is cluster-admin so the in-cluster kubectl needs no
kubeconfig; Keel stays enrolled as a redundant net.

Also stop deploy.yml firing on push: it's a manual-only targeted-deploy
tool now. Its IMAGE_TAG-absent exit-78 used to mark the whole push
pipeline red (build.yml + deploy.yml are workflows in one pipeline run),
masking real build/deploy status.

Removes the manual deploy step the recall fix required.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 19:32:02 +00:00
Viktor Barzin
f3ee7443ab ci: fix OOM-killed test step (256Mi LimitRange) + document recall limits
Some checks failed
ci/woodpecker/push/deploy Pipeline failed
ci/woodpecker/push/build Pipeline was successful
The Forgejo build pipeline (woodpecker repo 158) has failed on every run
since the 2026-05-07 Forgejo-only switch: the `test` step was OOM-killed
(exit 137) during `mypy` because the woodpecker namespace LimitRange
defaults containers to a 256Mi memory limit, and `uv sync` + mypy over
fastapi/pydantic/sqlalchemy needs far more. As a result the recall-limit
fix (1c0193f0) could not be built/deployed.

Pin explicit memory (req 1Gi / limit 2Gi) on the `test` and
`build-and-push` steps via backend_options.kubernetes.resources, matching
the in-repo pattern (infra/.woodpecker/default.yml). Also document the
recall default limit (30) and the relevance-bound OR-broadening fallback
in README.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 19:11:09 +00:00
Viktor Barzin
1fa6c2031e Phase 4: Forgejo only push (drop DockerHub from build pipeline)
Some checks failed
ci/woodpecker/push/deploy Pipeline failed
ci/woodpecker/push/build Pipeline failed
2026-05-07 23:28:11 +00:00
Viktor Barzin
516d08f43a [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>
2026-05-07 15:58:55 +00:00
Viktor Barzin
18e27d07d2
fix: remove slack notify from deploy pipeline to unblock manual triggers 2026-03-16 22:18:48 +00:00
Viktor Barzin
673647710e
fix: use bitnami/kubectl:latest (1.32 has entrypoint issues) 2026-03-16 00:35:44 +00:00
Viktor Barzin
90759f5dfa
fix: change build-fallback event to deployment (prevents dual workflow on API trigger) 2026-03-16 00:15:45 +00:00
Viktor Barzin
1e100cefd1
fix: use Woodpecker repo ID in API URL, quote YAML commands
- Woodpecker API requires numeric repo IDs, not owner/name paths
- Quote kubectl commands to prevent YAML map parsing on empty vars
2026-03-16 00:06:26 +00:00
Viktor Barzin
7dc285a677
fix deploy.yml: accept push events, check IMAGE_TAG var 2026-03-15 23:58:09 +00:00
Viktor Barzin
bfc20d2ce9
move Docker builds to GitHub Actions, Woodpecker becomes deploy-only
- GHA ci.yml: add build + deploy jobs (push to DockerHub, trigger Woodpecker)
- Drop test matrix to single Python 3.12, preserve mypy step
- Build/deploy gated on push to main (PRs still run tests only)
- Woodpecker: deploy.yml (manual event, kubectl set image + slack notify)
- Old pipeline preserved as build-fallback.yml (manual trigger)
2026-03-15 23:25:36 +00:00