Review: Bug: update-kustomize-tag skipped when CI tests fail
Verdict: READY
Template Completeness
- [x] Type — Bug
- [x] Lineage — discovered during #389 validation (PR #397)
- [x] Repo — forgejo_admin/basketball-api
- [x] What Broke — clear description: update-kustomize-tag skipped when test step fails, image pushed but never deployed
- [x] Repro Steps — 4-step reproduction
- [x] Expected Behavior — stated clearly
- [x] Environment — Woodpecker CI, basketball-api pipeline, push to main
- [x] File Targets — .woodpecker.yaml with specific change described
- [x] Acceptance Criteria — 3 testable criteria
- [x] Test Expectations — YAML parse validation command provided
- [x] Constraints — references pal-e-platform PR #275 pattern, YAML validation requirement per feedback_yaml_parse_validation
- [x] Checklist — 3 discrete steps
- [x] Related — PR #275, blocked #389 validation
Traceability
- [x] story:WS-S17 — "As a parent, I want to register my child online..." (verified in project-westside-basketball user-stories section, stories-parent-list block)
- [x] arch:ci — CI pipeline component. Note: no arch-ci note exists in pal-e-docs yet. Foundational infrastructure — acceptable, but backlog item recommended.
- [x] Forgejo issue — forgejo_admin/basketball-api#405, open
File Targets
- [x]
.woodpecker.yaml— verified: file exists at ~/basketball-api/.woodpecker.yaml (84 lines). The update-kustomize-tag step is at lines 60-83. The when clause at lines 81-83 currently has only event: push and branch: main. Confirmed missingstatus: [success, failure]. Fix is exactly as described in the ticket.
Repo Placement
Correct. Issue filed on basketball-api, fix is in basketball-api's
.woodpecker.yaml. Single-repo change. No cross-repo work needed for this ticket.Dependencies
- [x] pal-e-platform PR #275 (reference pattern) — satisfied, merged as commit 1d54939
- [x] No blocking dependencies. Board item #733 ("Fix 9 failing jersey/checkout tests", in_progress, arch:ci) is related context but not a blocker — the kustomize-tag fix is independent of test failures.
Acceptance Criteria
All 3 ACs are testable and specific:
- AC1: "update-kustomize-tag step includes status: [success, failure] in its when clause" — verifiable via grep
- AC2: "Step still only runs on push to main" — verifiable via grep for event: push and branch: main
- AC3: "Step still depends on build-and-push" — verifiable via grep for depends_on
YAML parse validation is specified in Test Expectations and Constraints — agent must run
python3 -c "import yaml; yaml.safe_load(open('.woodpecker.yaml'))" before committing.Blast Radius
WARNING — 3 other repos have the same bug:
westside-app/.woodpecker.yaml— MISSING status: [success, failure] fixpal-e-docs/.woodpecker.yaml— MISSING status: [success, failure] fixpal-e-app/.woodpecker.yaml— MISSING status: [success, failure] fix
The pal-e-platform reference template (PR #275, commit 1d54939) has the fix committed. These consuming repos were never updated. Each needs a separate Forgejo issue.
Rollback is trivial — revert the one-line YAML addition. No downstream consumers affected by the fix itself; the fix only changes when the step runs, not what it does.
Decomposition Assessment
No decomposition needed.
- 1 file target in 1 repo — under three-thing limit
- 3 acceptance criteria — under five-AC threshold
- Estimated agent time: under 2 minutes (add one line to YAML, validate, commit)
- No independent subtasks to parallelize
Recommendation
- No action needed on this ticket — scope is solid, ready for agent dispatch.
- [SCOPE] Create Forgejo issues for the same fix in westside-app, pal-e-docs, and pal-e-app repos (discovered scope — blast radius).
- [SCOPE] Create architecture note arch-ci for CI pipeline component (non-blocking, backlog).