mirror of
https://github.com/cozystack/cozystack.git
synced 2026-11-03 02:27:01 +09:00
The recovery path for a failed registry promotion had two gaps. The workflow runs ./.promote-scripts/hack/promote-retag.sh with the working directory on the release tree, which works only because the script sources its helper relative to $0 while scanning packages relative to the working directory. Those two resolutions have to stay independent, and that was stated in a workflow comment and held by nothing executable: every existing case runs from the repo root, where script dir and scanned root are the same place. Add a case that copies two package values.yaml into a stand-in tree containing no hack/, changes into it, and invokes the script by absolute path. Mutation check: rewriting the source line to `. hack/lib/image-refs.sh` previously kept all eleven cases green and would have broken the next promotion after the tag and release were already irreversible; it now fails this case, and only this case. The manual fallback named only the retag. A maintainer past the 30-day re-run window would follow it and stop with the images retagged and the chart unpublished — precisely the half-finished state this job exists to make recoverable, reached by following these instructions. Name both scripts and the registry login they need, and record that both are invoked by absolute path from the release tree, as the job runs them. Assisted-by: LLM Signed-off-by: Myasnikov Daniil <myasnikovdaniil2001@gmail.com>