fix: add retry loop to CI wget for update-kustomize-tag #148
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/westside-landing!148
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "230-ci-wget-retry"
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
BusyBox wget has no built-in retry flags. Transient forgejo-http connection failures cause the kustomize tag update step to fail silently. This wraps the wget call in a 5-attempt retry loop with 5s backoff and a fatal exit if the script never downloads.
Changes
.woodpecker.yaml: Replaced barewgetinupdate-kustomize-tagstep with a retry loop (5 attempts, 5s sleep between retries, fatal on complete failure)Test Plan
python3 -c "import yaml; yaml.safe_load(open('.woodpecker.yaml'))"Related
🤖 Generated with Claude Code
QA Review — PR #148
Summary
Adds a 5-attempt retry loop around the
wgetcall in theupdate-kustomize-tagCI step. BusyBox wget lacks built-in retry flags, so transient forgejo-http connection failures were causing silent failures.Findings
Retry logic -- correct.
for i in 1 2 3 4 5is POSIX-compatible (noseqdependency in BusyBox Alpine).&& breakexits on first success. 5s sleep between retries.Fatal guard --
test -f /tmp/update-kustomize-tag.sh || { echo "FATAL: ..."; exit 1; }correctly prevents the pipeline from proceeding with a missing script.Woodpecker variable escaping --
$${FORGEJO_TOKEN}and$$icorrectly use Woodpecker's$$escape syntax so the shell receives literal${FORGEJO_TOKEN}and$iat runtime. Consistent with the basketball-api pipeline convention. (Second commit fixed$i->$$icaught during review.)YAML block style -- Changed from
>-(folded) to|(literal) to preserve the multi-line shell script structure. Correct choice for a script block.YAML validation -- Passed
python3 -c "import yaml; yaml.safe_load(open('.woodpecker.yaml'))".No unrelated changes -- Only the
update-kustomize-tagstep commands were modified.sh /tmp/update-kustomize-tag.sh,depends_on, andwhenclauses are unchanged.VERDICT: APPROVED