Skip to content

Produce several component-scoped packages from one build in reusable - #11

Open
alexadereyko wants to merge 1 commit into
jira/TBBAS-3293-staging-cleanupfrom
jira/TBBAS-3439-multi-staging
Open

Produce several component-scoped packages from one build in reusable#11
alexadereyko wants to merge 1 commit into
jira/TBBAS-3293-staging-cleanupfrom
jira/TBBAS-3439-multi-staging

Conversation

@alexadereyko

Copy link
Copy Markdown
Collaborator

Depends on:

Brief

Let a reusable job 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 single staging-<job> / package-<job> artifact.

Description

cpack-presets moves 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 one staging-<job> / package-<job> artifact. staging-push already globs the nested staging-*/<name> layout, so it needs no change.

Test

test-staging folds into two jobs:

  • publish — one umbrella hello build emits both the core and module stagings and installers and publishes each to its own ghcr index. Producing several component packages from one build is the check.
  • consume — pulls hello-core back from ghcr and builds hello-module against it, without publishing.

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
alexadereyko force-pushed the jira/TBBAS-3439-multi-staging branch from 6c3a69d to 550134e Compare July 27, 2026 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant