From d4a33b3f98a752d0c262dc2cfab0c1f3803a8ad0 Mon Sep 17 00:00:00 2001
From: Priya Wadhwa <priyawadhwa@google.com>
Date: Wed, 22 Jul 2020 15:17:20 -0400
Subject: [PATCH] don't run test on None; make sure docker/minikube are on PATH
 before running skaffold

---
 test/integration/skaffold_test.go | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/test/integration/skaffold_test.go b/test/integration/skaffold_test.go
index 04c3bc550d..937c31268e 100644
--- a/test/integration/skaffold_test.go
+++ b/test/integration/skaffold_test.go
@@ -34,6 +34,9 @@ import (
 )
 
 func TestSkaffold(t *testing.T) {
+	if NoneDriver() {
+		t.Skip("none driver doesn't support `minikube docker-env`, which skaffold requires")
+	}
 	// can't use a unique profile, as skaffold only recognizes the
 	// profile name 'minikube' as a local cluster
 	profile := "minikube"
@@ -53,16 +56,22 @@ func TestSkaffold(t *testing.T) {
 	if err != nil {
 		t.Fatalf("starting minikube: %v\n%s", err, rr.Output())
 	}
-
-	// make sure "skaffold run" exits without failure
-	cmd := exec.CommandContext(ctx, tf.Name(), "run", "--kube-context", profile, "--status-check=true", "--port-forward=false")
-	cmd.Dir = "testdata/skaffold"
 	// make sure minikube binary is in path so that skaffold can access it
 	abs, err := filepath.Abs(Target())
 	if err != nil {
 		t.Fatalf("absolute path to minikube binary: %v", err)
 	}
 	os.Setenv("PATH", fmt.Sprintf("%s:%s", os.Getenv("PATH"), filepath.Dir(abs)))
+	// make sure 'docker' and 'minikube' are on PATH
+	for _, binary := range []string{"minikube", "docker"} {
+		rr, err := Run(t, exec.CommandContext(ctx, "which", binary))
+		if err != nil {
+			t.Fatalf("'which %v' failed: check if %v is on PATH\n%v", binary, binary, rr.Output())
+		}
+	}
+	// make sure "skaffold run" exits without failure
+	cmd := exec.CommandContext(ctx, tf.Name(), "run", "--kube-context", profile, "--status-check=true", "--port-forward=false")
+	cmd.Dir = "testdata/skaffold"
 	rr, err = Run(t, cmd)
 	if err != nil {
 		t.Fatalf("error running skaffold: %v\n%s", err, rr.Output())