mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-05-18 00:47:48 +08:00
Merge pull request #3133 from tonistiigi/build-defers-fix
build: make sure defers always run in the end of the build
This commit is contained in:
commit
9730a20f6b
@ -205,15 +205,6 @@ func BuildWithResultHandler(ctx context.Context, nodes []builder.Node, opts map[
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
defers := make([]func(), 0, 2)
|
|
||||||
defer func() {
|
|
||||||
if err != nil {
|
|
||||||
for _, f := range defers {
|
|
||||||
f()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
reqForNodes := make(map[string][]*reqForNode)
|
reqForNodes := make(map[string][]*reqForNode)
|
||||||
eg, ctx := errgroup.WithContext(ctx)
|
eg, ctx := errgroup.WithContext(ctx)
|
||||||
|
|
||||||
@ -243,11 +234,11 @@ func BuildWithResultHandler(ctx context.Context, nodes []builder.Node, opts map[
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
defer release()
|
||||||
if err := saveLocalState(so, k, opt, np.Node(), cfg); err != nil {
|
if err := saveLocalState(so, k, opt, np.Node(), cfg); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
addGitAttrs(so)
|
addGitAttrs(so)
|
||||||
defers = append(defers, release)
|
|
||||||
reqn = append(reqn, &reqForNode{
|
reqn = append(reqn, &reqForNode{
|
||||||
resolvedNode: np,
|
resolvedNode: np,
|
||||||
so: so,
|
so: so,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user