diff --git a/state/state.go b/state/state.go index 6dbac87a..88654b32 100644 --- a/state/state.go +++ b/state/state.go @@ -298,7 +298,9 @@ func (st *HelmState) isReleaseInstalled(context helmexec.HelmContext, helm helme func (st *HelmState) DetectReleasesToBeDeleted(helm helmexec.Interface) ([]*ReleaseSpec, error) { detected := []*ReleaseSpec{} - for _, release := range st.Releases { + for i := range st.Releases { + release := st.Releases[i] + if !release.Desired() { installed, err := st.isReleaseInstalled(st.createHelmContext(&release, 0), helm, release) if err != nil { @@ -511,7 +513,9 @@ func (st *HelmState) TemplateReleases(helm helmexec.Interface, additionalValues helm.SetExtraArgs(args...) } - for _, release := range st.Releases { + for i := range st.Releases { + release := st.Releases[i] + if !release.Desired() { continue } @@ -571,7 +575,9 @@ func (st *HelmState) LintReleases(helm helmexec.Interface, additionalValues []st helm.SetExtraArgs(args...) } - for _, release := range st.Releases { + for i := range st.Releases { + release := st.Releases[i] + if !release.Desired() { continue } @@ -910,7 +916,9 @@ func (st *HelmState) FilterReleases() error { func (st *HelmState) PrepareReleases(helm helmexec.Interface, helmfileCommand string) []error { errs := []error{} - for _, release := range st.Releases { + for i := range st.Releases { + release := st.Releases[i] + if _, err := st.triggerPrepareEvent(&release, helmfileCommand); err != nil { errs = append(errs, newReleaseError(&release, err)) continue diff --git a/state/state_exec_tmpl_test.go b/state/state_exec_tmpl_test.go index ff21084d..51298142 100644 --- a/state/state_exec_tmpl_test.go +++ b/state/state_exec_tmpl_test.go @@ -36,7 +36,8 @@ func TestHelmState_executeTemplates(t *testing.T) { }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { state := &HelmState{ basePath: ".", diff --git a/state/state_test.go b/state/state_test.go index 7b775805..70f2bb24 100644 --- a/state/state_test.go +++ b/state/state_test.go @@ -115,7 +115,8 @@ func TestHelmState_applyDefaultsTo(t *testing.T) { want: specWithNamespaceFromFields, }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { state := &HelmState{ basePath: tt.fields.BaseChartPath, @@ -505,7 +506,8 @@ func TestHelmState_flagsForUpgrade(t *testing.T) { }, }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { state := &HelmState{ basePath: "./", @@ -584,7 +586,8 @@ func Test_isLocalChart(t *testing.T) { want: true, }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { if got := isLocalChart(tt.args.chart); got != tt.want { t.Errorf("%s(\"%s\") isLocalChart(): got %v, want %v", tt.name, tt.args.chart, got, tt.want) @@ -636,7 +639,8 @@ func Test_normalizeChart(t *testing.T) { want: "/app", }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { if got := normalizeChart(tt.args.basePath, tt.args.chart); got != tt.want { t.Errorf("normalizeChart() = %v, want %v", got, tt.want) @@ -814,7 +818,8 @@ func TestHelmState_SyncRepos(t *testing.T) { want: []string{"name", "http://example.com/", "", "", "example_user", "example_password"}, }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { for k, v := range tt.envs { err := os.Setenv(k, v) @@ -929,7 +934,8 @@ func TestHelmState_SyncReleases(t *testing.T) { wantReleases: []mockRelease{{"releaseName", []string{"--set", "foo.bar[0]={A,B}"}}}, }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { state := &HelmState{ Releases: tt.releases, @@ -1016,7 +1022,8 @@ func TestHelmState_SyncReleasesAffectedRealeases(t *testing.T) { wantAffected: mockAffected{[]*mockRelease{{"releaseNameFoo", []string{}}}, []*mockRelease{{"releaseNameBar", []string{}}}, []*mockRelease{{"releaseNameFoo-error", []string{}}}}, }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { state := &HelmState{ Releases: tt.releases, @@ -1106,7 +1113,8 @@ func TestGetDeployedVersion(t *testing.T) { installedVersion: "1.0.0-alpha+001", }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { state := &HelmState{ Releases: []ReleaseSpec{tt.release}, @@ -1225,7 +1233,8 @@ func TestHelmState_DiffReleases(t *testing.T) { wantReleases: []mockRelease{{"releaseName", []string{"--set", "foo.bar[0]={A,B}"}}}, }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { state := &HelmState{ Releases: tt.releases, @@ -1294,7 +1303,8 @@ func TestHelmState_SyncReleasesCleanup(t *testing.T) { expectedNumRemovedFiles: 2, }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { numRemovedFiles := 0 state := &HelmState{ @@ -1383,7 +1393,8 @@ func TestHelmState_DiffReleasesCleanup(t *testing.T) { expectedNumRemovedFiles: 2, }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { numRemovedFiles := 0 state := &HelmState{ @@ -1624,8 +1635,9 @@ func TestHelmState_ReleaseStatuses(t *testing.T) { want: []mockRelease{{"releaseA", []string{"--tiller-namespace", "tillerns"}}}, }, } - for _, tt := range tests { - i := func(t *testing.T) { + for i := range tests { + tt := tests[i] + f := func(t *testing.T) { state := &HelmState{ Releases: tt.releases, logger: logger, @@ -1651,7 +1663,7 @@ func TestHelmState_ReleaseStatuses(t *testing.T) { t.Errorf("HelmState.ReleaseStatuses() for [%s] = %v, want %v", tt.name, tt.helm.releases, tt.want) } } - t.Run(tt.name, i) + t.Run(tt.name, f) } } @@ -1708,8 +1720,9 @@ func TestHelmState_TestReleasesNoCleanUp(t *testing.T) { want: []mockRelease{{"releaseA", []string{"--timeout", "1", "--tiller-namespace", "tillerns"}}}, }, } - for _, tt := range tests { - i := func(t *testing.T) { + for i := range tests { + tt := tests[i] + f := func(t *testing.T) { state := &HelmState{ Releases: tt.releases, logger: logger, @@ -1723,7 +1736,7 @@ func TestHelmState_TestReleasesNoCleanUp(t *testing.T) { t.Errorf("HelmState.TestReleases() for [%s] = %v, want %v", tt.name, tt.helm.releases, tt.want) } } - t.Run(tt.name, i) + t.Run(tt.name, f) } } @@ -1758,8 +1771,9 @@ func TestHelmState_NoReleaseMatched(t *testing.T) { wantErr: false, }, } - for _, tt := range tests { - i := func(t *testing.T) { + for i := range tests { + tt := tests[i] + f := func(t *testing.T) { state := &HelmState{ Releases: releases, logger: logger, @@ -1771,7 +1785,7 @@ func TestHelmState_NoReleaseMatched(t *testing.T) { return } } - t.Run(tt.name, i) + t.Run(tt.name, f) } } @@ -1877,8 +1891,9 @@ func TestHelmState_Delete(t *testing.T) { deleted: []mockRelease{{"releaseA", []string{"--purge", "--tiller-namespace", "tillerns"}}}, }, } - for _, tt := range tests { - i := func(t *testing.T) { + for i := range tests { + tt := tests[i] + f := func(t *testing.T) { name := "releaseA" if tt.wantErr { name = "releaseA-error" @@ -1913,6 +1928,6 @@ func TestHelmState_Delete(t *testing.T) { t.Errorf("unexpected deletions happened: expected %v, got %v", &affectedReleases.Deleted, tt.deleted) } } - t.Run(tt.name, i) + t.Run(tt.name, f) } } diff --git a/tmpl/context_tmpl_test.go b/tmpl/context_tmpl_test.go index e8888c3d..b30b8cc5 100644 --- a/tmpl/context_tmpl_test.go +++ b/tmpl/context_tmpl_test.go @@ -230,7 +230,8 @@ func Test_renderTemplateToString(t *testing.T) { wantErr: true, }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { for k, v := range tt.args.envs { err := os.Setenv(k, v)