diff --git a/pkg/app/run.go b/pkg/app/run.go index c9e018f0..f2ecd546 100644 --- a/pkg/app/run.go +++ b/pkg/app/run.go @@ -120,12 +120,19 @@ func (r *Run) withPreparedCharts(helmfileCommand string, opts state.ChartPrepare r.ReleaseToChart = releaseToChart errs := f() - var firstErr error - if len(errs) > 0 { - firstErr = errs[0] + var nonNilErrs []error + for _, e := range errs { + if e != nil { + nonNilErrs = append(nonNilErrs, e) + } } - _, err = r.state.TriggerGlobalCleanupEvent(helmfileCommand, firstErr) + var firstErr error + if len(nonNilErrs) > 0 { + firstErr = nonNilErrs[0] + } + + _, err = r.state.TriggerGlobalCleanupEventWithError(helmfileCommand, firstErr) return err } diff --git a/pkg/state/state.go b/pkg/state/state.go index 56e4a361..37f7308d 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -3105,7 +3105,11 @@ func (st *HelmState) TriggerGlobalPrepareEvent(helmfileCommand string) (bool, er return st.triggerGlobalReleaseEvent("prepare", nil, helmfileCommand) } -func (st *HelmState) TriggerGlobalCleanupEvent(helmfileCommand string, evtErr error) (bool, error) { +func (st *HelmState) TriggerGlobalCleanupEvent(helmfileCommand string) (bool, error) { + return st.TriggerGlobalCleanupEventWithError(helmfileCommand, nil) +} + +func (st *HelmState) TriggerGlobalCleanupEventWithError(helmfileCommand string, evtErr error) (bool, error) { return st.triggerGlobalReleaseEvent("cleanup", evtErr, helmfileCommand) }