From c129d4870e49018d50dc90fdfd226b862ef01a92 Mon Sep 17 00:00:00 2001 From: Brian de Alwis Date: Thu, 25 Nov 2021 14:52:09 -0500 Subject: [PATCH 1/4] fix: properly separate docker build errors from streaming errors --- pkg/skaffold/docker/image.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/skaffold/docker/image.go b/pkg/skaffold/docker/image.go index 99cd0d719ed..47676b6ec12 100644 --- a/pkg/skaffold/docker/image.go +++ b/pkg/skaffold/docker/image.go @@ -20,6 +20,7 @@ import ( "bufio" "context" "encoding/json" + "errors" "fmt" "io" "os" @@ -364,6 +365,10 @@ func (l *localDaemon) Build(ctx context.Context, out io.Writer, workspace string } if err := streamDockerMessages(out, resp.Body, auxCallback); err != nil { + var jm *jsonmessage.JSONError + if errors.As(err, &jm) { + return "", err + } return "", fmt.Errorf("unable to stream build output: %w", err) } From af7f79d8079947c69eeeeb22e379710aa78cc0a7 Mon Sep 17 00:00:00 2001 From: Brian de Alwis Date: Thu, 25 Nov 2021 17:12:20 -0500 Subject: [PATCH 2/4] fix tests --- integration/build_dependencies_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration/build_dependencies_test.go b/integration/build_dependencies_test.go index 7692dd31b3a..6a1338297f0 100644 --- a/integration/build_dependencies_test.go +++ b/integration/build_dependencies_test.go @@ -60,12 +60,12 @@ func TestBuildDependenciesOrder(t *testing.T) { { description: "build failure with concurrency=1", args: []string{"-p", "failed-dependency"}, - failure: `unable to stream build output: The command '/bin/sh -c [ "${FAIL}" == "0" ] || false' returned a non-zero code: 1`, + failure: `The command '/bin/sh -c [ "${FAIL}" == "0" ] || false' returned a non-zero code: 1`, }, { description: "build failure with concurrency=0", args: []string{"-p", "failed-dependency", "-p", "concurrency-0"}, - failure: `unable to stream build output: The command '/bin/sh -c [ "${FAIL}" == "0" ] || false' returned a non-zero code: 1`, + failure: `The command '/bin/sh -c [ "${FAIL}" == "0" ] || false' returned a non-zero code: 1`, }, } From e2aeab590ae9b31838fb3681d97e4e4b6c07ff99 Mon Sep 17 00:00:00 2001 From: Tejal Desai Date: Fri, 10 Dec 2021 05:03:26 -0800 Subject: [PATCH 3/4] Update pkg/skaffold/docker/image.go Co-authored-by: Brian de Alwis --- pkg/skaffold/docker/image.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/skaffold/docker/image.go b/pkg/skaffold/docker/image.go index 47676b6ec12..b16d9174431 100644 --- a/pkg/skaffold/docker/image.go +++ b/pkg/skaffold/docker/image.go @@ -367,7 +367,7 @@ func (l *localDaemon) Build(ctx context.Context, out io.Writer, workspace string if err := streamDockerMessages(out, resp.Body, auxCallback); err != nil { var jm *jsonmessage.JSONError if errors.As(err, &jm) { - return "", err + return "", fmt.Errorf("docker build failure: %w", err) } return "", fmt.Errorf("unable to stream build output: %w", err) } From 7cc83fb1c57f3c21fef27e91a591f20de8ec2e1f Mon Sep 17 00:00:00 2001 From: Tejal Desai Date: Fri, 10 Dec 2021 05:05:04 -0800 Subject: [PATCH 4/4] fix tests. --- integration/build_dependencies_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration/build_dependencies_test.go b/integration/build_dependencies_test.go index 6a1338297f0..036dc7b146e 100644 --- a/integration/build_dependencies_test.go +++ b/integration/build_dependencies_test.go @@ -60,12 +60,12 @@ func TestBuildDependenciesOrder(t *testing.T) { { description: "build failure with concurrency=1", args: []string{"-p", "failed-dependency"}, - failure: `The command '/bin/sh -c [ "${FAIL}" == "0" ] || false' returned a non-zero code: 1`, + failure: `docker build failure: The command '/bin/sh -c [ "${FAIL}" == "0" ] || false' returned a non-zero code: 1`, }, { description: "build failure with concurrency=0", args: []string{"-p", "failed-dependency", "-p", "concurrency-0"}, - failure: `The command '/bin/sh -c [ "${FAIL}" == "0" ] || false' returned a non-zero code: 1`, + failure: `docker build failure: The command '/bin/sh -c [ "${FAIL}" == "0" ] || false' returned a non-zero code: 1`, }, }