Skip to content

[DNM] feat: dry-run build artifacts (temp registry + job summary) - #559

Draft
ianpittwood wants to merge 18 commits into
mainfrom
feat/dry-run-artifacts
Draft

[DNM] feat: dry-run build artifacts (temp registry + job summary)#559
ianpittwood wants to merge 18 commits into
mainfrom
feat/dry-run-artifacts

Conversation

@ianpittwood

@ianpittwood ianpittwood commented May 29, 2026

Copy link
Copy Markdown
Contributor

[DNM] Do Not Merge yet — coordinated change. Must merge before / together with the product-repo PRs linked below (those call these reusable workflows at @main).

What & why

Lets Bakery builds publish a pullable multi-arch image to a temporary registry for builds that normally wouldn't push (PRs, dry-run merges), and surfaces the image references in the GitHub Actions job summary so failing builds are debuggable (docker pull …).

Changes

Bakery CLI

  • ImageTarget.temp_tag_name — stable pullable temp ref {temp_registry}/{image_name}/tmp:{uid}.
  • OrasMergeWorkflow.run(index_only=…) + bakery ci merge --index-only — create the multi-arch index in the temp registry and skip copy-to-final.
  • bakery ci summary --mode {temp|final} — renders a markdown table of refs for $GITHUB_STEP_SUMMARY.
  • bakery build --temp-tagged (+ BakerySettings/ImageTargetSettings.temp_tagged) — push a single tagged multi-arch image to the temp registry instead of by-digest.

Reusable workflows

  • bakery-build-native.yml & bakery-build.yml: push input is now a tri-state string off / temp / on (was boolean). temp publishes to the temp registry only; on keeps the prior push-to-final behavior; off keeps the prior no-push behavior. Adds a validation guard + a Build Artifact Summary step.
  • bakery-build-pr.yml: same-repo PRs now publish a temp multi-arch index + job summary (via merge --index-only); fork PRs keep their --load-only, no-push behavior unchanged.

Compatibility / merge order

⚠️ The push input changed type (boolean → string). Product repos (images-connect, images-package-manager, images-workbench) pin these workflows at @main and pass a boolean push:; once this merges, those callers must already emit 'on'/'off'. The linked product PRs do exactly that — merge this first (or together).

Linked product-repo PRs

Testing

  • just test: 1559 passed.
  • actionlint (pre-commit) + zizmor: clean (no template-injection; only pre-existing artipacked checkout notes).

Design docs (local, not committed — docs/superpowers/ is gitignored)

  • Spec: docs/superpowers/specs/2026-05-29-dry-run-build-artifacts-design.md
  • Plan: docs/superpowers/plans/2026-05-29-dry-run-build-artifacts.md

🤖 Generated with Claude Code

ianpittwood and others added 17 commits May 29, 2026 07:49
The OrasManifestDelete command frequently failed when cleaning up the
temporary manifest index after a merge. Remove the command and the
in-line cleanup step; the temporary index is now left in place and
cleaned up out-of-band by the clean.yml workflow (bakery clean
temp-registry).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…uild-pr

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Comment on lines +284 to +285
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@github-actions

github-actions Bot commented May 29, 2026

Copy link
Copy Markdown

Test Results

1 582 tests  +11   1 582 ✅ +11   8m 4s ⏱️ -35s
    1 suites ± 0       0 💤 ± 0 
    1 files   ± 0       0 ❌ ± 0 

Results for commit a59edd8. ± Comparison against base commit 230803b.

♻️ This comment has been updated with latest results.

Points the internal setup-bakery action refs and the reusable-workflow
`version` input defaults at this branch so PR CI (here and in the product
repos) installs and runs this branch's bakery + workflows.

REVERT THIS COMMIT before merging — on main these must reference @main.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants