Bug: update-kustomize-tag skipped when CI tests fail — deploy blocked by unrelated test failures #274
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/pal-e-platform#274
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Type
Bug
Lineage
Standalone — discovered during CRM incident response 2026-04-07. Image built and pushed to Harbor but never deployed because test step failed.
Repo
forgejo_admin/pal-e-platformWhat Broke
The
update-kustomize-tagstep in.woodpecker.yamlhasdepends_on: [build-and-push]but Woodpecker skips ALL subsequent steps when ANY prior step fails, regardless of explicitdepends_on. Whentestfails butbuild-and-pushsucceeds, the image is in Harbor but the kustomize tag is never updated, so ArgoCD never deploys.This happened on pipelines #382, #384, and #385 for basketball-api. The test failure was a pre-existing enum test bug from PR #370 — completely unrelated to the code being deployed.
Repro Steps
build-and-pushsucceeds — image lands in Harbortestfailsupdate-kustomize-tagis skipped despite its only dependency (build-and-push) succeedingExpected Behavior
update-kustomize-tagruns wheneverbuild-and-pushsucceeds, regardless of test status. Tests gate future PRs, not current deploys.Design Decision
Option A selected: decouple deploy from test. Rationale:
Environment
update-kustomize-tag; 6 other repos pending onboarding (#206)Acceptance Criteria
update-kustomize-tagstep uses Woodpeckerfailure: ignoreorwhen: status: [success, failure]on the test dependency so it runs when build-and-push succeedsscripts/woodpecker-update-tag-step.yaml.woodpecker.yamlupdated to matchdeployment-lessonsFile Targets
scripts/woodpecker-update-tag-step.yaml(canonical template, line 37-38 —depends_onconfig)~/basketball-api/.woodpecker.yaml(lines 60-82)Related
pal-e-platform— CI infrastructureforgejo_admin/pal-e-platform #273— companion bug (webhook not firing)deployment-lessons— operational lessonsforgejo_admin/pal-e-platform #206— onboarding other repos to update-kustomize-tagScope Review: NEEDS_REFINEMENT
Review note:
review-882-2026-04-07Ticket is well-described but contains an unresolved design decision (Option A vs B) that blocks agent execution, plus traceability gaps.
Issues to resolve:
[SCOPE]Option A vs Option B must be decided by a human before this ticket is actionable[LABEL]story:PLAT-S2is not a valid story key on the project page -- change tostory:superuser-deploy[SCOPE]Noarch-woodpeckernote exists in pal-e-docs -- create it for traceability[BODY]Add File Targets section (reviewer verified:scripts/woodpecker-update-tag-step.yaml,scripts/update-kustomize-tag.sh, and consumerbasketball-api/.woodpecker.yaml)[BODY]Rewrite Acceptance Criteria as concrete testable statements after decision[BODY]Add Test Expectations section[BODY]Clarify Repo field based on decision (single-repo vs multi-repo)Scope refinement (post review-882-2026-04-07):
woodpecker-update-tag-step.yaml+ basketball-api.woodpecker.yamlfailure: ignoreorwhen: status)Scope Review: READY
Review note:
review-882-2026-04-07-v2(re-review ofreview-882-2026-04-07)All blocking issues from v1 resolved. Design decision made (Option A), story label fixed, AC rewritten as concrete statements, file targets added with line numbers.
Verified file targets:
scripts/woodpecker-update-tag-step.yamlline 37-38 —depends_on: [build-and-push]confirmedbasketball-api/.woodpecker.yamllines 60-83 — consumer step confirmedfailure: ignoreprecedent exists in pal-e-platform's own pipeline (line 332)Blast radius note: 4 other repos (pal-e-docs, westside-app, pal-e-app, twitch-2k-wager) have the same latent bug. Out of scope — tracked by #206.
Non-blocking scope items:
[SCOPE]Createarch-woodpeckernote in pal-e-docs (can be done in parallel)[BODY]Minor: Repo section could explicitly note basketball-api as second target