From 557cd656ab4e04b2a9bbdae9fe8ea71e3168e171 Mon Sep 17 00:00:00 2001 From: Donny Xia Date: Mon, 18 May 2020 14:30:05 -0700 Subject: [PATCH] Finish pushing tag --- releasing/releasing/releasing.go | 34 ++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/releasing/releasing/releasing.go b/releasing/releasing/releasing.go index 156bd5a0c..ce0bb6b90 100644 --- a/releasing/releasing/releasing.go +++ b/releasing/releasing/releasing.go @@ -163,13 +163,13 @@ var release = &cobra.Command{ } else if !noDryRun { logInfo("Skipping push module %s. Run with --no-dry-run to push the release.", mod.name) } else { - // TODO: Push tags + pushRelease(tempDir, branch, mod) } // Clean cleanGit() pruneWorktree(pwd) deleteBranch(pwd, branch) - logInfo("Done") + logInfo("Module %s completes", mod.name) }, } @@ -442,3 +442,33 @@ func merge(path, branch string) { } logInfo("Finished merging") } + +func pushRelease(path, branch string, mod module) { + logInfo("Pushing branch %s", branch) + cmd := exec.Command("git", "push", "upstream", branch) + cmd.Dir = path + stdoutStderr, err := cmd.CombinedOutput() + if err != nil { + logFatal(string(stdoutStderr)) + } + + logInfo("Creating tag %s", mod.Tag()) + cmd = exec.Command( + "git", "tag", + "-a", mod.Tag(), + "-m", fmt.Sprintf("Release %s on branch %s", mod.Tag(), branch), + ) + cmd.Dir = path + stdoutStderr, err = cmd.CombinedOutput() + if err != nil { + logFatal(string(stdoutStderr)) + } + + logInfo("Pushing tag %s", mod.Tag()) + cmd = exec.Command("git", "push", "upstream", mod.Tag()) + cmd.Dir = path + stdoutStderr, err = cmd.CombinedOutput() + if err != nil { + logFatal(string(stdoutStderr)) + } +}