Skip to content

chart-release workflow does not comply with immutable releases #2359

@furkatgofurov7

Description

@furkatgofurov7

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

Metadata

Metadata

Labels

area/releasekind/refactorIndicates a PR with large refactoring changes e.g. removes files or moves content

Type

No fields configured for Task.

Projects

Status
In Progress (8 max)

Relationships

None yet

Development

No branches or pull requests

Issue actions