diff --git a/cli/cmd/release_create.go b/cli/cmd/release_create.go index 0f5d0713e..13af6cb1f 100644 --- a/cli/cmd/release_create.go +++ b/cli/cmd/release_create.go @@ -485,8 +485,13 @@ Prepared to create release with defaults: } log.FinishSpinner() - // ignore error since operation was successful - log.ChildActionWithoutSpinner("Channel %s successfully set to release %d\n", promoteChanID, release.Sequence) + if len(promoteResp.Warnings) > 0 { + for _, w := range promoteResp.Warnings { + log.ChildActionWithoutSpinner("Warning: %s", w) + } + } else { + log.ChildActionWithoutSpinner("Channel %s successfully set to release %d", promoteChanID, release.Sequence) + } if r.appType == "kots" && r.args.createReleasePromoteWaitForAirgap { if err := r.waitForAirgapBuilds(promoteResp, r.args.createReleasePromoteWaitForAirgapTimeout, log); err != nil { diff --git a/cli/cmd/release_promote.go b/cli/cmd/release_promote.go index 2eedb9128..99f6d1d82 100644 --- a/cli/cmd/release_promote.go +++ b/cli/cmd/release_promote.go @@ -108,21 +108,33 @@ func (r *runners) releasePromote(cmd *cobra.Command, args []string) (err error) log.Silence() out := struct { - Channel string `json:"channel"` - ReleaseSequence int64 `json:"release_sequence"` - VersionLabel string `json:"version_label"` + Channel string `json:"channel"` + ReleaseSequence int64 `json:"release_sequence"` + VersionLabel string `json:"version_label"` + Warnings []string `json:"warnings,omitempty"` }{ Channel: newID, ReleaseSequence: seq, VersionLabel: r.args.releaseVersion, } + + if promoteResp != nil && len(promoteResp.Warnings) > 0 { + out.Warnings = promoteResp.Warnings + } + enc := json.NewEncoder(r.w) enc.SetIndent("", " ") if err := enc.Encode(out); err != nil { return errors.Wrap(err, "encode json output") } } else { - fmt.Fprintf(r.w, "Channel %s successfully set to release %d\n", channelName, seq) + if len(promoteResp.Warnings) > 0 { + for _, w := range promoteResp.Warnings { + fmt.Fprintf(r.w, "Warning: %s\n", w) + } + } else { + fmt.Fprintf(r.w, "Channel %s successfully set to release %d\n", channelName, seq) + } } if r.appType == "kots" && r.args.releasePromoteWaitForAirgap { diff --git a/pkg/types/release.go b/pkg/types/release.go index 03ab39251..1049e1b41 100644 --- a/pkg/types/release.go +++ b/pkg/types/release.go @@ -90,6 +90,7 @@ type AirgapBuildSummary struct { type PromoteReleaseResponse struct { Release KotsAppRelease `json:"release"` AirgapBuilds []AirgapBuildSummary `json:"airgapBuilds"` + Warnings []string `json:"warnings,omitempty"` } type KotsAppRelease struct {