diff --git a/pkg/helmexec/exec.go b/pkg/helmexec/exec.go index 6c4d1332..144bc4f2 100644 --- a/pkg/helmexec/exec.go +++ b/pkg/helmexec/exec.go @@ -218,7 +218,17 @@ func (helm *execer) RegistryLogin(repository string, username string, password s func (helm *execer) BuildDeps(name, chart string) error { helm.logger.Infof("Building dependency release=%v, chart=%v", name, chart) - out, err := helm.exec([]string{"dependency", "build", chart}, map[string]string{}, nil) + args := []string{ + "dependency", + "build", + chart, + } + + if helm.IsHelm3() { + args = append(args, "--skip-refresh") + } + + out, err := helm.exec(args, map[string]string{}, nil) helm.info(out) return err } diff --git a/pkg/helmexec/exec_test.go b/pkg/helmexec/exec_test.go index d571bae2..31a21f44 100644 --- a/pkg/helmexec/exec_test.go +++ b/pkg/helmexec/exec_test.go @@ -337,10 +337,12 @@ exec: helm --kube-context dev dependency update ./chart/foo --verify func Test_BuildDeps(t *testing.T) { var buffer bytes.Buffer logger := NewLogger(&buffer, "debug") - helm := MockExecer(logger, "dev") + helm3Runner := mockRunner{output: []byte("v3.2.4+ge29ce2a")} + helm := New("helm", false, logger, "dev", &helm3Runner) err := helm.BuildDeps("foo", "./chart/foo") expected := `Building dependency release=foo, chart=./chart/foo -exec: helm --kube-context dev dependency build ./chart/foo +exec: helm --kube-context dev dependency build ./chart/foo --skip-refresh +v3.2.4+ge29ce2a ` if err != nil { t.Errorf("unexpected error: %v", err) @@ -353,7 +355,23 @@ exec: helm --kube-context dev dependency build ./chart/foo helm.SetExtraArgs("--verify") err = helm.BuildDeps("foo", "./chart/foo") expected = `Building dependency release=foo, chart=./chart/foo -exec: helm --kube-context dev dependency build ./chart/foo --verify +exec: helm --kube-context dev dependency build ./chart/foo --skip-refresh --verify +v3.2.4+ge29ce2a +` + if err != nil { + t.Errorf("unexpected error: %v", err) + } + if buffer.String() != expected { + t.Errorf("helmexec.BuildDeps()\nactual = %v\nexpect = %v", buffer.String(), expected) + } + + buffer.Reset() + helm2Runner := mockRunner{output: []byte("Client: v2.16.1+ge13bc94")} + helm = New("helm", false, logger, "dev", &helm2Runner) + err = helm.BuildDeps("foo", "./chart/foo") + expected = `Building dependency release=foo, chart=./chart/foo +exec: helm --kube-context dev dependency build ./chart/foo +Client: v2.16.1+ge13bc94 ` if err != nil { t.Errorf("unexpected error: %v", err)