Problem:
Currently, in chart-release workflow cr upload creates and publishes the GitHub release immediately. Any steps that run after it, specifically the recovery step: Verify chart asset present, which does gh release upload --clobber attempts to modify an already published release, violating GitHub's immutable releases requirement.
Additional note:
The recovery step was introduced (by me 😢) in #2141 to handle the case where cr upload succeeds in creating the release but the chart asset ends up missing. Whatever solution is implemented must continue to address that scenario.
Thoughts on possible fix:
We could replace the current cr upload + recovery pattern with a proper draft and then publish flow so that the release is only published after all assets are confirmed present, making both immutable releases compliance and #2138 concerns addressed in one go. Rougly the fix could look like:
- Create the release as a draft first
- Upload the chart asset explicitly to the draft
- Update the helm index
- Publish the release as the very last step
Problem:
Currently, in chart-release workflow
cr uploadcreates and publishes the GitHub release immediately. Any steps that run after it, specifically the recovery step:Verify chart asset present, which doesgh release upload --clobberattempts to modify an already published release, violating GitHub's immutable releases requirement.Additional note:
The recovery step was introduced (by me 😢) in #2141 to handle the case where cr upload succeeds in creating the release but the chart asset ends up missing. Whatever solution is implemented must continue to address that scenario.
Thoughts on possible fix:
We could replace the current
cr upload+recovery patternwith a proper draft and then publish flow so that the release is only published after all assets are confirmed present, making both immutable releases compliance and #2138 concerns addressed in one go. Rougly the fix could look like: