feat: activate Woodpecker CI pipeline #21
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "3-activate-ci"
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
Replace the outdated
.woodpecker.ymlwith a.woodpecker.yamlthat follows current platform CI patterns. The new pipeline uses the internal Forgejo clone URL, runs tests and svelte-check on all events, and builds/pushes to Harbor via kaniko on main pushes.Changes
.woodpecker.yml(v1 syntax, no tests, no clone block, used plugins/docker).woodpecker.yamlwith:forgejo-http.forgejo.svc.cluster.localnpm ci,svelte-check,vitest run,vite buildharbor.harbor.svc.cluster.local(westside-contracts/app)Test Plan
westside-contracts/appReview Checklist
Related
plan-wkqPhase 14Review: LGTM
Files reviewed:
.woodpecker.yaml(new),.woodpecker.yml(deleted)What changed
Old
.woodpecker.ymlreplaced with.woodpecker.yamlfollowing current platform CI patterns (westside-app, mcd-tracker-app).Verified
node:20-alpinematches Dockerfile base imagenpm ci,svelte-check,vitest,vite buildinsecure: truewestside-contracts/appis correctharbor_username/harbor_password(platform standard)No issues found
0 blocking, 0 nits.
PR #21 Review
DOMAIN REVIEW
Tech stack: Woodpecker CI YAML (v2 syntax), kaniko image build, SvelteKit/Node.js test pipeline.
Clone block: Uses internal Forgejo URL (
http://forgejo-http.forgejo.svc.cluster.local:80/) withsleep 2+ shallow fetch. Matches the platform-standard clone pattern used by westside-app, pal-e-mail, minio-api, and basketball-api.Test step: Runs
npm ci,npm run check(svelte-check),npm test(vitest run),npm run build(vite build). All four commands align with thepackage.jsonscripts. The step runs on push, pull_request, and manual events -- correct.Build step: Uses
woodpeckerci/plugin-kaniko:2.3.0with internal Harbor registry (harbor.harbor.svc.cluster.local),insecure: truefor in-cluster HTTP, SHA-only tags (immutable, good), and secrets viafrom_secret. Gated topush+manualonmainonly -- correct.Node version consistency: Pipeline uses
node:20-alpine, matching the Dockerfile. Consistent.Comparison with platform peers: The pipeline matches the most current pattern (westside-app, pal-e-mail). The older repos (mcd-tracker-app, minio-api) still use external Harbor URLs and lack clone blocks -- this PR follows the newer, correct pattern.
ArgoCD path exclude: Not needed -- westside-contracts has no
k8s/directory or.argocd-source-*files. Deployments are in pal-e-deployments (kustomize overlays), so no infinite pipeline loop risk.Old pipeline removal: The deleted
.woodpecker.ymlused v1 syntax,plugins/docker(not kaniko), external Harbor URL (harbor.tail5b443a.ts.net),latesttag (mutable), no clone block, and no test step. All of these are correctly replaced.BLOCKERS
None.
This is a CI pipeline configuration change, not new application functionality. The BLOCKER criteria around test coverage apply to new features/logic, not to CI YAML that configures an existing test suite. The pipeline itself runs the existing 12 vitest tests.
NITS
BUILD_SHAbuild arg (line 35-36): The pipeline passesBUILD_SHA=${CI_COMMIT_SHA}as a build arg, but the Dockerfile has noARG BUILD_SHAdeclaration and does not use it. This is harmless (kaniko ignores unused args) but is dead configuration. Note: westside-app has the same pattern, so this appears to be a platform-wide template artifact. Consider filing a cleanup issue to either addARG BUILD_SHAto Dockerfiles that want it, or remove it from pipelines that don't use it.SOP COMPLIANCE
3-activate-cireferences issue #3)plan-wkqPhase 14) and closes #3from_secret)PROCESS OBSERVATIONS
Deployment Frequency: Activating CI is a direct DORA enabler. This repo previously had no test step in CI -- every push to main went straight to image build without validation. This PR closes that gap by gating on svelte-check + vitest + vite build before any image push.
Change Failure Rate: The test gate (svelte-check + vitest + build) on PRs means broken code will be caught before merge. The 12 existing tests now run in CI on every PR, which is a meaningful quality gate for a contract-signing application handling sensitive data.
Lead Time: The pipeline follows the standard pattern, so no unique operational overhead. Clone + test + build should complete in under 3 minutes for this repo size.
VERDICT: APPROVED