From b176408eb2c351f5730c914a12a72b587aac23f9 Mon Sep 17 00:00:00 2001 From: Yusuke Kuoka Date: Mon, 21 Sep 2020 09:44:05 +0900 Subject: [PATCH] Enable `helmfile test` testing only enabled and selected releases (#1486) Resolves #1483 --- pkg/app/app.go | 2 +- pkg/app/run.go | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/pkg/app/app.go b/pkg/app/app.go index b60bc647..420b6a82 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -390,7 +390,7 @@ func (a *App) Test(c TestConfigProvider) error { err := run.withPreparedCharts("test", state.ChartPrepareOptions{ SkipRepos: true, }, func() { - errs = run.Test(c) + errs = a.test(run, c) }) if err != nil { diff --git a/pkg/app/run.go b/pkg/app/run.go index 539d24a9..df8e2cf5 100644 --- a/pkg/app/run.go +++ b/pkg/app/run.go @@ -161,14 +161,29 @@ func (a *App) diff(r *Run, c DiffConfigProvider) (*string, bool, bool, []error) return infoMsg, true, len(deleted) > 0 || len(updated) > 0, errs } -func (r *Run) Test(c TestConfigProvider) []error { +func (a *App) test(r *Run, c TestConfigProvider) []error { cleanup := c.Cleanup() timeout := c.Timeout() concurrency := c.Concurrency() + st := r.state + + toTest, err := a.getSelectedReleases(r) + if err != nil { + return []error{err} + } + + if len(toTest) == 0 { + return nil + } + + // Do test only on selected releases, because that's what the user intended + // with conditions and selectors + st.Releases = toTest + r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state)...) - return r.state.TestReleases(r.helm, cleanup, timeout, concurrency) + return st.TestReleases(r.helm, cleanup, timeout, concurrency) } func (r *Run) Lint(c LintConfigProvider) []error {