Review: Update .woodpecker.yaml to match platform CI pattern
Verdict: READY
Template Completeness
Checked against
template-issue-feature (Type: Feature).- [x] Type
- [x] Lineage
- [x] Repo
- [x] User Story
- [x] Context
- [x] File Targets
- [x] Feature Flag
- [x] Acceptance Criteria
- [x] Test Expectations
- [x] Constraints
- [x] Checklist
- [x] Related
Traceability
- [x] story:platform-setup label -- "Platform Setup"
- [x] story note verified --
story-prediction-assistant-platform-setupexists in project-prediction-assistant user-stories section - [x] arch:ci-pipeline label -- CI pipeline component
- [ ] arch note MISSING -- no
arch-ci-pipelinenote found in pal-e-docs. Non-blocking: platform-wide documentation gap, not specific to this ticket. [SCOPE] Create architecture note arch-ci-pipeline for component ci-pipeline. - [x] Forgejo issue -- #91, open
File Targets
- [x]
.woodpecker.yaml-- verified: exists at repo root, contains bare-bones config (ruby:3.4, plugin-docker-buildx, pushes to harbor.tail5b443a.ts.net/ldraney/prediction-assistant). Matches issue description of "minimal version" needing upgrade. - [x]
Dockerfile-- verified: exists, correctly marked "don't touch" (multi-stage Ruby 3.4.9 build) - [x]
Gemfile-- verified: exists, correctly marked "don't touch"
Repo Placement
OK. Issue filed on ldraney/prediction-assistant, file target is
.woodpecker.yaml in the same repo. Single-repo change.Dependencies
- #1696 "CI/CD pipeline -- Woodpecker config" (sprint:2, validation) -- predecessor, original CI setup already done
- #1773 "Activate repo in Woodpecker + first green build" (sprint:10, backlog) -- downstream dependency, validates end-to-end pipeline after this ticket completes
- #1767 "Add prediction-assistant to services terraform" (sprint:9, backlog) -- parallel infra work, may update image references in ArgoCD/Kustomize
- No items in
in_progressthat block this ticket
Acceptance Criteria
6 criteria, all agent-verifiable by reading the resulting YAML:
- In-cluster clone step (alpine/git, Forgejo HTTP) -- check YAML step
- ruby-rails-build:latest base image -- check image field
- Test step: bin/rails test with Postgres service -- check commands and services
- kaniko build-and-push -- check kaniko step config
- In-cluster Harbor registry -- check registry URL
- Build-and-push only on main -- check when condition
Test expectations: "pipeline runs green on first push after merge" is only verifiable post-deploy, which is appropriate for CI pipeline work and covered by downstream ticket #1773.
Blast Radius
Note: K8s deployment files reference the old image path that this ticket changes:
k8s/base/deployment.yaml-- 2 references toharbor.tail5b443a.ts.net/ldraney/prediction-assistant:latestk8s/base/worker-deployment.yaml-- 1 reference to same
After this ticket, CI pushes to
prediction-assistant/app:${CI_COMMIT_SHA} via in-cluster Harbor. The k8s deployments still reference the old path. This is handled by downstream tickets (#1767 services terraform, #1773 activation) and is not a blocker for this ticket's scope.No other files in the repo reference CI-specific patterns (woodpecker, kaniko, ruby-rails-build). Blast radius is contained to the single file.
Decomposition Assessment
1 file target in 1 repo. 6 AC but all describe aspects of a single YAML file rewrite -- tightly coupled. Estimated agent time well under 5 minutes. No decomposition needed.
Recommendation
- [SCOPE] Create architecture note
arch-ci-pipelinefor the CI pipeline component. Non-blocking platform documentation gap.
No other action needed. Ticket is READY for development.