Add Woodpecker CI pipeline #16
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "7-add-woodpecker-pipeline"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Adds a Woodpecker CI pipeline that builds the Docker image via Kaniko and pushes to Harbor on merge to main, then triggers a kustomize tag update for ArgoCD deployment.
Changes
.woodpecker.yaml-- new CI pipeline with clone, build-and-push, and update-kustomize-tag stepsDesign Decisions
test/andspec/directories are absent). Adding a fake test step would be misleading.harbor.harbor.svc.cluster.localconsistent with all existing pipelines (basketball-api, westside-admin, pal-e-docs, pal-e-app, pal-e-mail).pal-enterprises/appper thevar.servicesentry referenced in issue #7.Test Plan
harbor_usernameandharbor_passwordsecrets in Woodpeckerforgejo_tokensecret in Woodpeckerpal-enterprises/appprojectReview Checklist
var.servicesconfig (pal-enterprises/app)tofu apply)Related Notes
None.
Related
Closes #7
PR Review --
.woodpecker.yamlAcceptance Criteria Check
.woodpecker.yamlexists in repo rootpal-enterprises/app:{SHA}tag on merge to mainFindings
Harbor URL discrepancy (low severity, informational)
Issue #7 specifies
harbor-core.harbor.svc.cluster.localbut this PR usesharbor.harbor.svc.cluster.local. The PR follows the convention from all 5 existing working pipelines (basketball-api, westside-admin, pal-e-docs, pal-e-app, pal-e-mail) which all useharbor.harbor.svc.cluster.local. The issue text may contain a typo --harbor-coreis typically the internal Harbor API component, not the registry endpoint Kaniko pushes to. No change recommended unless the SOP explicitly requiresharbor-core.Pipeline structure: correct
build-and-pushstep uses Kaniko plugin v2.3.0, consistent with all sibling repos.update-kustomize-tagstep follows the canonical pattern from basketball-api/westside-admin with retry logic andtest -sguard.depends_onchain: update-kustomize-tag depends on build-and-push.event: push, branch: main.No test step: appropriate
test/orspec/directory exists in the repo. Omitting a test step avoids false confidence.No issues found with:
harbor_username,harbor_password,forgejo_token)pal-enterprises) matches expected kustomize overlay name${CI_COMMIT_SHA}consistentlywhenfilters are correct (PR events trigger clone only, push-to-main triggers full pipeline)VERDICT: APPROVE
Pipeline follows established conventions exactly. The Harbor URL matches all working pipelines. Ready to merge after manual gates (Woodpecker activation, secrets configuration).
QA Review — PR #16
Convention Compliance
Compared against
basketball-apiandpal-e-docspipelines:from_secretfor credentialsdepends_onfor orderingPipeline structure is sound. Clone, Kaniko build, and kustomize tag update all match established platform patterns exactly.
Blocker
No test step. Every sibling repo runs tests in CI. This app has test tooling in its Gemfile (brakeman, rubocop-rails-omakase, bundler-audit) and a test database config, but none are exercised. Deploying untested code on every main push is a change failure risk.
Recommendation: Add a test step that at minimum runs
bundle exec brakemanandbundle exec rubocop. If no application tests exist yet, a lint/security-scan step still provides value and establishes the pattern for when tests are written.Nits
path: exclude: ["k8s/.argocd-source-*"]on the push trigger to prevent ArgoCD feedback loops (matches basketball-api convention)/up(matches pal-e-docs convention)SOP Compliance
from_secretVERDICT: REQUEST_CHANGES
Add a test step (brakeman + rubocop at minimum) to match platform convention, then this is ready to merge.
Pull request closed