Repository navigation
feat: chart-only release manifests - WPB-29305 - #8
Merged
Merged
Conversation
…ut image A component that ships a chart and no image (helm-charts) could not write a manifest: artifacts[0] had to be the image. chart-only: true writes the chart alone, identified by its digest; verify refuses such a manifest explicitly.
bsinou
marked this pull request as ready for review
November 12, 2026 13:15
Collaborator
Author
|
Security review: No vulnerabilities found. I reviewed the two changed files that run code, release-manifest/action.yml and scripts/release-manifest.sh. I didn't What I checked:
|
wartraxx51
approved these changes
Nov 12, 2026
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.
release-manifestwrites the image asartifacts[0]and the chart asartifacts[1], and requires both. A component that ships a chart and no image cannot write a manifest: the helm-charts dev builds fail withmanifest field .artifacts[0].repository is empty(wireapp/helm-charts run 43219915917), and their releases would fail too (stopgap: wireapp/helm-charts#97).Change
New input
chart-only(defaultfalse, so existing callers are unchanged). Withchart-only: 'true':artifactsis the chart alone (then the extra artifacts), identified bychart-digest, since the chart is already pushed when the manifest is written;chart-fileandchart-sha256(both or neither); a dev build ignores them as before;verifyrefuses such a manifest with an explicit message: it checks the draft release of an image and its chart, which a chart-only component does not have.completeworks unchanged.The opt-in is explicit rather than inferred from empty image inputs, so that an image component whose build step returned nothing still fails instead of silently writing a chart-only manifest.
Consumers
artifactsto be a list (docs/SPEC.md§4.15) and finds the image by type (services/manifests.py,first_imagereturnsNonewhen there is none).draft-release.shreads the artifact files regardless of their position.Checks
shellcheck,actionlint,zizmor --offlineclean;pytest tests: 631 passed, 19 new intests/test_release_manifest.py.#6 also edits
scripts/release-manifest.sh, incompleteonly: no overlap with this change.Once released, helm-charts passes
chart-only: 'true'indev.ymlandrelease.yamland drops thecontinue-on-errorof #97.