Conversation
crazy-max
force-pushed
the
bake-execution
branch
from
August 31, 2026 13:00
b027761 to
05970de
Compare
crazy-max
force-pushed
the
bake-execution
branch
5 times, most recently
from
August 31, 2026 15:09
7a76c27 to
1311cec
Compare
crazy-max
commented
Sep 1, 2026
crazy-max
commented
Sep 1, 2026
Comment on lines
+652
to
+654
| if bh.Execution.Parallel < len(opts) && linkedTargets.hasLinks() { | ||
| return nil, errors.Errorf("limited parallelism is not supported with linked targets") | ||
| } |
Member
Author
There was a problem hiding this comment.
I rejected limited target parallelism when linked targets are present because linked target evaluation can require parent and child targets to be alive together.
Does it make sense for this first version or should linked targets be allowed when the requested limit is high enough to cover each linked group?
crazy-max
force-pushed
the
bake-execution
branch
from
September 1, 2026 14:18
1311cec to
c65a9ad
Compare
crazy-max
commented
Sep 1, 2026
crazy-max
force-pushed
the
bake-execution
branch
from
September 2, 2026 10:02
c65a9ad to
a368304
Compare
crazy-max
marked this pull request as ready for review
September 2, 2026 10:35
crazy-max
force-pushed
the
bake-execution
branch
4 times, most recently
from
September 2, 2026 12:23
fa7a54d to
d552196
Compare
Defer target exports until all targets successfully reach the output boundary. Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
Add --jobs and -j to limit concurrent Bake targets. Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
crazy-max
force-pushed
the
bake-execution
branch
from
September 21, 2026 12:24
d552196 to
fd58b8f
Compare
Report succeeded, failed, aborted, and unstarted targets through the progress stream when a multi-target defer-error build fails. Include the summary in rawjson output while keeping quiet mode and single-target builds unchanged. Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
crazy-max
force-pushed
the
bake-execution
branch
from
September 21, 2026 12:33
fd58b8f to
00779f5
Compare
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.
This carries forward the synchronized-output work from #1197 and adds explicit execution modes and target concurrency control to Bake.
--execution=fail-fastremains the default, preserving cancellation of other targets when a build fails.--execution=defer-outputwaits until all participating targets have successfully evaluated their build results before allowing exports to begin. This addresses the premature publication scenario in #1089, including failures discovered during evaluation rather than Dockerfile parsing. Exports are not transactional: export failures can still leave partial output, completed exports are not rolled back, and Buildx-side multi-node manifest merging and pushing remain outside the synchronization barrier. It does not combine multiple targets into a shared archive, as requested in #1668.--execution=defer-errorlets independent targets finish even when another target fails, covering the workflows in #3297 and #3428. Bake still exits with an error, but successful targets can export their outputs and retain their entries in--metadata-file. Failed multi-target builds end with an[internal] target resultsprogress step distinguishing succeeded, failed, aborted, and unstarted targets. These outcomes are also available through--progress=rawjson; quiet mode remains silent. This partially addresses #1320, without adding its broader proposed summary of failing stages, source lines, and command logs.--jobs=N, also available as-j=N, controls target concurrency independently of the execution mode.-j=1runs independent targets sequentially, while0retains unlimited concurrency. This provides the per-invocation Bake control requested in #3989 without changing BuildKit internal step parallelism or requiring builder reconfiguration. Bake-file defaults and Compose passthrough are outside this change. With deferred output or linked targets, a nonzero limit smaller than the total participating target count is rejected to avoid deadlocks; that count includes implicit targets referenced throughtarget:contexts.