Fix cache step falsely failing the CI pipeline #97
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix-cache-step-blocking-deploy"
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
save-bundle-cachewas marking the entire pipeline as failure even thoughbuild-and-pushsucceededfailure: ignoresince bundle cache is an optimization, not a deploy gateChanges
.woodpecker.yaml: Addfailure: ignoreto save-bundle-cache step,mkdir -p /cachesafety net, andls -la /cache/diagnostic outputTest Plan
ls -la /cache/output to diagnose the mount issueReview Checklist
Related Notes
ldraney/landscaping-assistant #94— related deploy issue (fix merged but not deployed)landscaping-assistant— projectCloses #96
PR #97 Review
DOMAIN REVIEW
Tech stack: Woodpecker CI pipeline (YAML). CI/CD domain review applied.
failure: ignoreplacement is correct. Thesave-bundle-cachestep is a cache optimization, not a deploy gate. It runs afterlintandtest, and critically,build-and-pushdepends only onlintandtest-- never onsave-bundle-cache. Addingfailure: ignorehere means a cache-save failure no longer marks the pipeline red while images deploy successfully via ArgoCD. This directly addresses the seven consecutive false-failure pipelines described in the issue.mkdir -p /cacheis a reasonable safety net. The volume mount already specifiestype: DirectoryOrCreate, so the host path should exist. However, if the volume mount itself fails to attach (the suspected root cause),mkdir -p /cachewould create a local container directory instead -- cache would be written to ephemeral storage and lost, but the step would not error out. Combined withfailure: ignore, this is defense-in-depth.ls -la /cache/diagnostic is good for root-cause investigation. The2>&1 || echo "WARNING..."pattern ensures the step continues regardless. This will reveal whether/cacheis the host volume or an empty local dir aftermkdir -p. Consider removing this diagnostic line once the mount issue is diagnosed and resolved.No symmetry issue with
restore-bundle-cache. The restore step does NOT havefailure: ignore. If the volume mount fails during restore, the restore step would also fail and blockbundle-install. This is arguably correct (a failed restore is less forgiving since it gates the install), but worth noting as a potential follow-up if the mount issue persists. Out of scope for this PR.BLOCKERS
None. This is a CI config fix with no application code, no secrets exposure, and no security surface.
NITS
Diagnostic line is temporary. The
ls -la /cache/ 2>&1 || echo "WARNING: /cache volume not mounted"line is useful now for debugging the mount issue. Once the root cause is found and fixed, consider removing it to keep the pipeline config clean. Not blocking -- leaving diagnostic output in CI steps is low-risk.restore-bundle-cachesymmetry. If the volume mount issue is systemic,restore-bundle-cachecould also benefit fromfailure: ignore. That said, a failed restore should probably block the pipeline (it means bundle-install runs without cache, which is slower but functional). This is a separate concern -- noting it for awareness only.SOP COMPLIANCE
fix-cache-step-blocking-deploy, should be96-fix-cache-step-blocking-deployper conventionfrom_secret, no plaintext secretsPROCESS OBSERVATIONS
This is a hotfix to unblock CI visibility. Seven consecutive green-in-practice but red-in-CI pipelines is a meaningful DORA metric drag -- it erodes trust in pipeline status and delays detection of real failures. Merging this restores pipeline signal fidelity.
The branch naming miss (no issue number prefix) is a minor SOP gap. For hotfixes like this, the tradeoff is understandable -- speed of fix vs. naming convention. Not worth blocking over.
The missing plan slug is also expected for a reactive hotfix. No planning artifact was needed here.
VERDICT: APPROVED
Small, focused, correct fix. The
failure: ignoredirective is the right Woodpecker mechanism for a non-critical cache step. The diagnostic output andmkdir -pare sensible additions for investigating the underlying volume mount issue. No blockers found.