rdev/docs/RELEASE_CHECKLIST.md
jordan 96c9389c97
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
docs: update build/deploy docs for Woodpecker CI
- deploying.md: Add Woodpecker CI section, update constraints
- releasing.md: Add automated releases via Woodpecker, Zot registry
- RELEASE_CHECKLIST.md: Update build/deploy commands
- CLAUDE.md: Update quick reference for automated deploys

Images now at registry.threesix.ai/rdev/* instead of ghcr.io

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 23:54:00 -07:00

3.1 KiB

v1.0.0 Release Checklist

Pre-release

Testing

  • All unit tests pass (go test ./...)
  • Integration tests pass
  • E2E tests pass
  • Benchmarks run successfully

Quality

  • Static analysis clean (minor errcheck in tests only)
  • Security scan reviewed (gosec findings are expected patterns)
  • Cross-compilation verified (linux/amd64)

Coverage

Package Coverage Target Status
internal/domain 100% >95%
internal/sanitize 100% N/A
internal/validate 100% N/A
internal/cmdlimit 100% N/A
internal/ratelimit 95.7% N/A
internal/circuitbreaker 91.9% N/A
internal/adapter/postgres 90.7% >80%
internal/service 82.5% >90% ⚠️
internal/adapter/cached 78.4% >80% ⚠️
internal/auth 59.4% >90% ⚠️
internal/handlers 55.8% >85% ⚠️

Note: Some coverage targets not met, but core functionality is well-tested.

Documentation

  • Architecture documentation complete
  • API documentation complete
  • Operations documentation complete
  • Runbooks complete
  • CHANGELOG.md updated
  • README.md reviewed

Security

  • Command sanitization implemented
  • API key hashing (SHA-256)
  • Rate limiting configured
  • RBAC minimized
  • Network policies defined
  • Pod security context hardened

Release

Push to main triggers Woodpecker CI to build and deploy:

# Push to both remotes - Woodpecker builds and deploys automatically
git push origin main
GITEA_TOKEN=$(kubectl get secret rdev-credentials -n rdev -o jsonpath='{.data.GITEA_TOKEN}' | base64 -d)
git push https://jordan:${GITEA_TOKEN}@git.threesix.ai/jordan/rdev.git main

Images are built via kaniko and pushed to registry.threesix.ai/rdev/*.

Tag

git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0

Manual Deploy (if needed)

export KUBECONFIG=~/.kube/orchard9-k3sf.yaml
kubectl apply -f deployments/k8s/base/rdev-api.yaml
kubectl rollout restart -n rdev deployment/rdev-api

# Verify deployment
kubectl -n rdev rollout status deployment/rdev-api

Post-release

Verification

  • Health endpoint responding
  • Readiness endpoint healthy
  • API key authentication working
  • Command execution working
  • SSE streaming working
  • Metrics endpoint exposing data

Monitoring

  • Prometheus scraping metrics
  • Grafana dashboard created
  • Alerts configured

Communication

  • Release notes published
  • Team notified
  • Documentation URL shared

Known Issues

  1. Coverage below targets: Some packages need additional test coverage
  2. OpenTelemetry deferred: Requires OTLP collector infrastructure
  3. Gosec warnings: G204 (command execution) is by design; G104 (unhandled errors) in cleanup code

Rollback

If issues occur:

# Rollback to previous version
kubectl -n rdev rollout undo deployment/rdev-api

# Or rollback to specific revision
kubectl -n rdev rollout undo deployment/rdev-api --to-revision=<N>