Repository navigation
feat(ci): add all-versions input to override recent in shared build workflow - #853
Closed
ianpittwood wants to merge 3 commits into
Closed
ianpittwood wants to merge 3 commits into
ianpittwood wants to merge 3 commits into
Conversation
bschwedler
requested changes
Oct 21, 2026
bschwedler
left a comment
Contributor
There was a problem hiding this comment.
Please use the existing recent input; 0 already builds all versions.
| default: 0 | ||
| required: false | ||
| type: number | ||
| all-versions: |
Contributor
There was a problem hiding this comment.
This input isn’t needed: recent: 0 already builds all versions. Callers can map the dispatch input to recent with fromJSON(inputs.all-versions && '0' || '3'). Please use the existing input instead.
bschwedler
reviewed
Oct 21, 2026
| default: 0 | ||
| required: false | ||
| type: number | ||
| all-versions: |
Contributor
There was a problem hiding this comment.
Suggestion: Keep recent as the shared workflow’s only control and map the dispatch input at each caller instead:
recent: ${{ fromJSON(inputs.all-versions && '0' || '3') }}This handles GitHub’s falsy-0 behavior while preserving the default of three versions for scheduled and push runs. The dispatch input can remain in the product workflows without adding an overlapping parameter here.
…orkflow
Adds an all-versions boolean input to bakery-build-native.yml and
bakery-build.yml. When true, the matrix step skips --recent so every
release version is built. Callers can pass it straight through
(all-versions: ${{ inputs.all-versions || false }}) alongside their
existing recent: 3, avoiding the falsy-0 expression pitfalls of mapping
a dispatch input onto recent downstream.
Part of #851
ianpittwood
force-pushed
the
feat/851-all-versions
branch
from
October 22, 2026 14:02
9e9f5c7 to
3b2ecc8
Compare
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.
Partly addresses #851.
Summary
Adds an
all-versionsboolean input (defaultfalse) tobakery-build-native.ymlandbakery-build.yml. When it istrue, the matrix step skips--recent, so every release version is built. Callers keeprecent: 3and pass the dispatch input straight through:This moves the complexity upstream, the same way
refresh-cachedid (#847/#850). Callers no longer needfromJSON(inputs.all-versions && '0' || '3'). The obvious expressionsinputs.all-versions && 0 || 3andinputs.recent || 3silently evaluate to 3, because0is falsy in GitHub expressions.env:(ALL_VERSIONS) and is never interpolated intorun:.recentis consumed. The build, merge and test jobs use the matrix's versions.toJSON(inputs)(cache-scope, artifact-scope hash) now includes the new key. Producers and consumers within a call hash it the same way, so this is harmless.bakery-build-pr.ymlis intentionally unchanged. PR builds are fork-safe validation runs that never push, and a security rebuild is a manual production dispatch that uses the native/QEMU workflows.recent,all-versionsand the previously undocumentedrefresh-cache.Verification
actionlintpasses on both workflows, and the pre-commit actionlint and zizmor hooks pass.bakery ci matrix --context ../images-connect --dev-versions exclude --matrix-versions exclude:--recent(whatall-versions: trueproduces):connect16,connect-content-init16 (2025.05.0 to 2026.09.0)--recent 3: 3 each (2026.07.0 to 2026.09.0)Downstream follow-up
The caller changes in #851 are still needed. In
production.ymlof each of these repos:images-connectimages-package-managerimages-workbenchAdd a
workflow_dispatchboolean inputall-versions(defaultfalse, description e.g. "Build all release versions instead of only the 3 most recent [default: false]"). Then passall-versions: ${{ inputs.all-versions || false }}to the shared workflow next to the existingrecent: 3. Schedule and push runs see nullinputsand still build 3. Downstream should also review theupdate-helmjob's behavior andmax-parallelfor a run that is about 3 to 5 times larger (see the open questions in #851).