Replace ImageTarget.merge() with OrasMergeWorkflow#365
Merged
ianpittwood merged 7 commits intomainfrom Mar 12, 2026
Merged
Conversation
Test Results1 180 tests 1 180 ✅ 13m 31s ⏱️ Results for commit cb0d628. ♻️ This comment has been updated with latest results. |
f268fe1 to
c654aab
Compare
a984a21 to
0389bef
Compare
4947ca1 to
9dd55b8
Compare
5 tasks
bced671 to
8328a71
Compare
This was referenced Mar 11, 2026
bschwedler
approved these changes
Mar 11, 2026
Contributor
bschwedler
left a comment
There was a problem hiding this comment.
I am happy merging as long as multi-platform builds are successful.
Refactor the merge() method to use ORAS CLI instead of Docker's buildx imagetools with a local registry workaround. This simplifies the merge workflow and removes the dependency on spawning a local registry container. Key changes: - Add temp_registry property to ImageTarget for convenient access - Add plain_http flag to ORAS commands for local HTTP registry support - Refactor merge() to use OrasMergeWorkflow for both dry-run and actual merge - Move RegistryContainer from production code to test helpers - Update CLI error handling to catch BakeryError and ValueError - Update unit tests to mock OrasMergeWorkflow instead of Docker operations Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Consolidate multi-platform merge handling in BakeryConfig.merge_targets() instead of having each ImageTarget handle its own merge. This provides better error handling and cleaner separation of concerns. Also make get_merge_sources() a public method. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
8328a71 to
cb0d628
Compare
github-merge-queue bot
pushed a commit
that referenced
this pull request
Mar 11, 2026
Replace ImageTarget.merge() with OrasMergeWorkflow
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.
Summary
This PR refactors the multi-platform image merge functionality to use the ORAS CLI instead of Docker's
buildx imagetools createwith a temporary registry container.Key changes:
Move merge orchestration to
BakeryConfig: Themerge()method onImageTargethas been removed and replaced withmerge_targets()onBakeryConfig. This centralizes merge operations and improves error handling across all targets.Use
OrasMergeWorkflowinstead of Docker workaround: The previous implementation required spinning up a temporary Docker registry container to work around authentication issues withdocker buildx imagetools create. The new ORAS-based workflow is cleaner and more efficient:Add
plain_httpsupport to ORAS commands: All ORAS commands now support the--plain-httpflag for local/insecure registry testing.Make
get_merge_sources()public: Renamed from_get_merge_sources()since it's now used byOrasMergeWorkflow.Reorganize test helpers: Moved test helpers into a proper package structure (
test/helpers/).Test plan
plain_httpflag propagationjust testto verify all tests pass🤖 Generated with Claude Code