From 4347b2dec529693471f3901996a5639e874f096d Mon Sep 17 00:00:00 2001 From: Jason Johnston Date: Thu, 29 Feb 2024 01:54:28 -0500 Subject: [PATCH] Prompt to add the release tag (#243) --- gbm-cli/cmd/release/prepare/all.go | 6 +++--- gbm-cli/cmd/release/prepare/gb.go | 8 ++++---- gbm-cli/cmd/release/prepare/root.go | 2 +- gbm-cli/pkg/release/gb.go | 20 ++++++++++++++++---- gbm-cli/pkg/release/main.go | 14 +++++++------- 5 files changed, 31 insertions(+), 19 deletions(-) diff --git a/gbm-cli/cmd/release/prepare/all.go b/gbm-cli/cmd/release/prepare/all.go index f95d911..e99e8d8 100644 --- a/gbm-cli/cmd/release/prepare/all.go +++ b/gbm-cli/cmd/release/prepare/all.go @@ -33,9 +33,9 @@ var allCmd = &cobra.Command{ console.Info("Preparing Gutenberg for release %s", version) build := release.Build{ - Dir: gbDir, - Version: version, - UseTag: !noTag, + Dir: gbDir, + Version: version, + PromptToTag: !noTag, Base: gh.Repo{ Ref: "trunk", }, diff --git a/gbm-cli/cmd/release/prepare/gb.go b/gbm-cli/cmd/release/prepare/gb.go index 0a3c7da..ce7fca6 100644 --- a/gbm-cli/cmd/release/prepare/gb.go +++ b/gbm-cli/cmd/release/prepare/gb.go @@ -16,10 +16,10 @@ var gbCmd = &cobra.Command{ defer workspace.Cleanup() build := release.Build{ - Dir: tempDir, - Version: version, - UseTag: !noTag, - Repo: "gutenberg", + Dir: tempDir, + Version: version, + PromptToTag: !noTag, + Repo: "gutenberg", Base: gh.Repo{ Ref: "trunk", }, diff --git a/gbm-cli/cmd/release/prepare/root.go b/gbm-cli/cmd/release/prepare/root.go index 44421e9..8684618 100644 --- a/gbm-cli/cmd/release/prepare/root.go +++ b/gbm-cli/cmd/release/prepare/root.go @@ -64,7 +64,7 @@ func init() { PrepareCmd.AddCommand(gbCmd) PrepareCmd.AddCommand(allCmd) PrepareCmd.PersistentFlags().BoolVar(&keepTempDir, "keep", false, "Keep temporary directory after running command") - PrepareCmd.PersistentFlags().BoolVar(&noTag, "no-tag", false, "Prevent tagging the release") + PrepareCmd.PersistentFlags().BoolVar(&noTag, "no-tag", false, "Prevent tagging the release. If not set, you will be prompted to tag the release") PrepareCmd.PersistentFlags().StringSliceVar(&prs, "prs", []string{}, "prs to include in the release. Only used with patch releases") } diff --git a/gbm-cli/pkg/release/gb.go b/gbm-cli/pkg/release/gb.go index 4adcbbf..85945a8 100644 --- a/gbm-cli/pkg/release/gb.go +++ b/gbm-cli/pkg/release/gb.go @@ -197,10 +197,12 @@ func CreateGbPR(build Build) (gh.PullRequest, error) { gh.PreviewPr("gutenberg", dir, build.Base.Ref, pr) - prompt := fmt.Sprintf("\nReady to create the PR on %s/gutenberg?", org) - cont := console.Confirm(prompt) + var prompt string - if !cont { + prompt = fmt.Sprintf("\nReady to create the PR on %s/gutenberg?", org) + shouldCreatePr := console.Confirm(prompt) + + if !shouldCreatePr { return pr, fmt.Errorf("exiting before creating PR") } @@ -216,7 +218,17 @@ func CreateGbPR(build Build) (gh.PullRequest, error) { return pr, fmt.Errorf("pr was not created successfully") } - if build.UseTag { + // Only tag if we are prompting to tag + var shouldTag bool + + if build.PromptToTag { + prompt = fmt.Sprintf("\nDo you want to create the release tag on %s/gutenberg?", org) + shouldTag = console.Confirm(prompt) + } else { + shouldTag = false + } + + if shouldTag { console.Info("Adding release tag") if err := git.PushTag("rnmobile/" + version); err != nil { console.Warn("Error tagging the release: %v", err) diff --git a/gbm-cli/pkg/release/main.go b/gbm-cli/pkg/release/main.go index dc75555..053c8a0 100644 --- a/gbm-cli/pkg/release/main.go +++ b/gbm-cli/pkg/release/main.go @@ -6,13 +6,13 @@ import ( ) type Build struct { - Version semver.SemVer - Dir string - UseTag bool - Repo string - Prs []gh.PullRequest - Base gh.Repo - Depth string + Version semver.SemVer + Dir string + PromptToTag bool + Repo string + Prs []gh.PullRequest + Base gh.Repo + Depth string } type ReleaseChanges struct {