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
Copy link
Copy Markdown
Contributor

@ianpittwood ianpittwood commented May 29, 2026

[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
Copy link
Copy Markdown

github-actions Bot commented May 29, 2026

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants