Skip to content

Commit a2bca00

Browse files
Merge pull request #39 from depot/error-report
2 parents 6f671a0 + dd32f42 commit a2bca00

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

pkg/api/api.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,19 @@ type FinishResponse struct {
7979
OK bool `json:"ok"`
8080
}
8181

82-
func (d *Depot) FinishBuild(buildID string) error {
82+
func (d *Depot) FinishBuild(buildID string, buildErr error) error {
83+
var status string
84+
if buildErr != nil {
85+
status = "error"
86+
} else {
87+
status = "success"
88+
}
89+
8390
_, err := apiRequest[FinishResponse](
8491
"DELETE",
8592
fmt.Sprintf("%s/api/internal/cli/builds/%s", d.BaseURL, buildID),
8693
d.token,
87-
map[string]string{},
94+
map[string]string{"status": status},
8895
)
8996
return err
9097
}

pkg/cmd/build/buildx.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,8 @@ func runBuild(dockerCli command.Cli, in buildOptions) (err error) {
244244
}
245245

246246
func buildTargets(ctx context.Context, dockerCli command.Cli, opts map[string]build.Options, progressMode, contextPathHash, metadataFile string, in buildOptions) (imageID string, err error) {
247+
var buildErr error
248+
247249
ctx2, cancel := context.WithCancel(context.TODO())
248250
defer cancel()
249251

@@ -260,7 +262,7 @@ func buildTargets(ctx context.Context, dockerCli command.Cli, opts map[string]bu
260262
return "", err
261263
}
262264
defer func() {
263-
err := depot.FinishBuild(b.ID)
265+
err := depot.FinishBuild(b.ID, buildErr)
264266
if err != nil {
265267
log.Printf("error releasing builder: %v", err)
266268
}
@@ -271,13 +273,13 @@ func buildTargets(ctx context.Context, dockerCli command.Cli, opts map[string]bu
271273
return "", err
272274
}
273275

274-
resp, err := build.Build(ctx, dis, opts, dockerAPI(dockerCli), confutil.ConfigDir(dockerCli), printer)
276+
resp, buildErr := build.Build(ctx, dis, opts, dockerAPI(dockerCli), confutil.ConfigDir(dockerCli), printer)
275277
err1 := printer.Wait()
276-
if err == nil {
277-
err = err1
278+
if buildErr == nil {
279+
buildErr = err1
278280
}
279-
if err != nil {
280-
return "", err
281+
if buildErr != nil {
282+
return "", buildErr
281283
}
282284

283285
if len(metadataFile) > 0 && resp != nil {
@@ -293,7 +295,7 @@ func buildTargets(ctx context.Context, dockerCli command.Cli, opts map[string]bu
293295
_ = d.Driver.Stop(ctx, false)
294296
}
295297

296-
return resp[defaultTargetName].ExporterResponse["containerimage.digest"], err
298+
return resp[defaultTargetName].ExporterResponse["containerimage.digest"], buildErr
297299
}
298300

299301
func getDrivers(ctx context.Context, dockerCli command.Cli, contextPathHash string, buildID string) ([]build.DriverInfo, error) {

0 commit comments

Comments
 (0)