feat: build-push-sign-images composite action #2
No reviewers
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
HOIST-IT-Actions/actions!2
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/build-push-sign-images"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
New composite action
build-push-sign-imagesthat centralises the toolboxbuild-imagesbuild/push/cosign-sign orchestration: the runner-disk discipline(upfront
nix store gc, a gc-rooted signing toolchain, a per-image gc under athreshold), the per-image continue-on-error and the fail-closed exit. This is
the last big piece of toolbox-local reusable CI logic in the centralisation
initiative (umbrella #134, this work #137).
Modes
Two modes cover the two flake-app shapes across the org:
copyto-sign(default, the toolbox shape): per image name, push<flake>#<name>.copyTothen sign<flake>#<sign-app> -- <name>.publish-app(the dp-engine / mkPublishImage shape, also website): pertarget, run one self-contained build+push+sign app
<flake>#<app> -- <dest-ref>:<tag>.The calling job keeps the container, the flake checkout and the registry/cosign
secrets. The action owns the loop and the disk discipline.
Verification
reuse lint: compliant.shellcheck -s bashon the run body: clean.discipline, per-image continue-on-error + fail-closed, push-then-sign, the
caller-provided runner env). Two robustness caveats are documented: the
copyto-sign
tag/registrycoupling with the bundledsign-imagesigner(which pins
:latest, so the action warns on a mismatching tag), and thepublish-app shared-toolchain gc that dp-engine disables with
gc-threshold-gib: "0".Follow-up
After merge, tag
v0.4.0on main. The ref form isHOIST-IT-Actions/actions/[email protected], and the README alreadydocuments that tag. The toolbox
build-images.yamlmigration (first consumer)lands in a separate PR that references
@v0.4.0; dp-engine (second consumer) iscoordinated with SwiftCove over agent-mail before its
release.ymlis touched.