Platform CI/CD

platform-ci-cd Doc

pal-e-platform ci-cd

CI: Woodpecker

  • Self-hosted on Forgejo (deployed by pal-e-platform)
  • Pipeline defined in .woodpecker.yaml in each repo
  • Builds container images, pushes to Harbor
  • Repos must be activated before first pipeline: POST /api/repos?forge_remote_id=N

CD: ArgoCD + Image Updater

  • ArgoCD watches Forgejo repos for k8s manifests
  • Image Updater polls Harbor for new image tags
  • On new image: writes .argocd-source-*.yaml back to repo via git commit
  • Strategy: newest-build with SHA regex

Flow

git push → Woodpecker builds → Harbor stores image → Image Updater detects → ArgoCD deploys

Key Rules

  • CI never pushes directly to main (uses PRs)
  • CI never uses [skip ci]
  • All workflows must be idempotent