Produce several component-scoped packages from one build in reusable - #11
Open
alexadereyko wants to merge 1 commit into
Open
Produce several component-scoped packages from one build in reusable#11alexadereyko wants to merge 1 commit into
alexadereyko wants to merge 1 commit into
Conversation
cpack-presets now declares outputs as lists -- stagings (TGZ) and installers (native packages) -- each a named package cpacked into its own <staging|package-dir>/<name>/ subdir of the single staging-<job> / package-<job> artifact. Named packages merge across matching entries, so a ["*"] entry sets common variables and a platform entry adds its installer.
alexadereyko
force-pushed
the
jira/TBBAS-3439-multi-staging
branch
from
July 27, 2026 15:41
6c3a69d to
550134e
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.
Depends on:
Brief
Let a
reusablejob declare its outputs as lists, so one build produces several component-scoped packages:stagings: [{name, variables}]and, likewise,installers. Each named package cpacks into its own<staging|package-dir>/<name>/subdir of the singlestaging-<job>/package-<job>artifact.Description
cpack-presetsmoves from a single staging + single installer per job to two lists:stagings— TGZ tarballs, one per{name, variables, package-preset}.installers— native packages, one per{name, package, variables, package-preset}.Named packages merge across matching entries (variables update, package / package-preset last-wins), so a
["*"]entry sets common variables and a platform entry adds its installer. Per package a<job>-staging-<name>/<job>-package-<name>packagePreset cpacks into<staging|package-dir>/<name>/; the whole dir uploads as the onestaging-<job>/package-<job>artifact.staging-pushalready globs the nestedstaging-*/<name>layout, so it needs no change.Test
test-stagingfolds into two jobs:hellobuild emits both thecoreandmodulestagings and installers and publishes each to its own ghcr index. Producing several component packages from one build is the check.hello-coreback from ghcr and buildshello-moduleagainst it, without publishing.