func (r *Releaser) execute(inst *instance.Instance, actions []ReleaseAction, kind flux.ReleaseKind, updateJob func(string, ...interface{})) error { rc := NewReleaseContext(inst) defer rc.Clean() for i, action := range actions { updateJob(action.Description) inst.Log("description", action.Description) if action.Do == nil { continue } if kind == flux.ReleaseKindExecute { result, err := action.Do(rc) if err != nil { updateJob(err.Error()) inst.Log("err", err) actions[i].Result = "Failed: " + err.Error() return err } if result != "" { updateJob(result) } actions[i].Result = result } } return nil }