fix(ci): publish the Helm chart only after the image - #181
Open
TheMeinerLP wants to merge 1 commit into
Open
Conversation
The helm job only depended on release-please, so it ran in parallel with the image build. Packaging and pushing a chart takes seconds while the build context, image build, chunked Harbor upload and signing take minutes, so the chart was reliably published pointing at an appVersion whose image did not exist yet - and stayed published even when the image build failed. Depend on the docker job as well, which also gates the chart on that job succeeding. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
Test results 42 files 42 suites 5s ⏱️ Results for commit fddec93. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed changes
The
helmjob only depended onrelease-please, so it ran in parallel with the image build:build-contextrelease-pleasedockerrelease-please,build-contexthelmrelease-pleasehelm package+helm push)The chart is packaged with the release version as its
appVersion, so it was reliably published pointing at an image tag that did not exist yet. Flux pulling in that window getsImagePullBackOff— and if the image build fails outright, a chart referencing an image that will never exist stays published. The gap is wider here than in stelaris becausedockeradditionally waits forbuild-context.Adding
dockertoneedscloses it. Sinceneedsimplies success and thehelmjob has noalways(), a failed or skippeddockerjob now skips the chart as well — which is what should happen. Theifcondition is unchanged;needs.release-please.outputsstill resolves, and aworkflow_dispatchrun still skips the chart becauserelease_createdis nottruethere.Same fix as OneLiteFeatherNET/stelaris#136.
Types of changes
Checklist
Further comments
Not covered by tests — the ordering only shows up in a real release run. It can be confirmed on the next release: the
Publish the Helm chartjob must start only afterBuild Docker Artifactshas finished.Trade-off: the chart push now waits for the image build, so a release takes longer end to end. That is the intended semantics.
🤖 Generated with Claude Code