- 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)
42 lines
1,015 B
YAML
42 lines
1,015 B
YAML
when:
|
|
- event: manual
|
|
|
|
clone:
|
|
git:
|
|
image: woodpeckerci/plugin-git
|
|
settings:
|
|
attempts: 5
|
|
backoff: 10s
|
|
|
|
steps:
|
|
- name: test
|
|
image: python:3.12-slim
|
|
commands:
|
|
- pip install -e ".[api,dev]"
|
|
- ruff check src/ tests/
|
|
- pytest tests/ -v --tb=short
|
|
|
|
- name: build-and-push
|
|
image: woodpeckerci/plugin-docker-buildx
|
|
depends_on:
|
|
- test
|
|
settings:
|
|
username: viktorbarzin
|
|
password:
|
|
from_secret: dockerhub-token
|
|
repo: viktorbarzin/claude-memory-mcp
|
|
dockerfile: docker/Dockerfile
|
|
context: .
|
|
platforms:
|
|
- linux/amd64
|
|
tags:
|
|
- "${CI_PIPELINE_NUMBER}"
|
|
- latest
|
|
|
|
- name: deploy
|
|
image: bitnami/kubectl:latest
|
|
depends_on:
|
|
- build-and-push
|
|
commands:
|
|
- kubectl set image deployment/claude-memory claude-memory=viktorbarzin/claude-memory-mcp:${CI_PIPELINE_NUMBER} -n claude-memory
|
|
- kubectl rollout status deployment/claude-memory -n claude-memory --timeout=120s
|