diff options
Diffstat (limited to 'doRelease.go')
| -rw-r--r-- | doRelease.go | 64 |
1 files changed, 47 insertions, 17 deletions
diff --git a/doRelease.go b/doRelease.go index 6a4b941..774d508 100644 --- a/doRelease.go +++ b/doRelease.go @@ -188,25 +188,55 @@ func doRelease() error { log.Info("PUBLISH OK") // me.current.SetGoState("RELEASED") - // unwind and re-tag. Now that the go.mod and go.sum are published, revert - // to the development branch - if !me.current.RevertMasterToDevel() { - log.Info("Revert Failed") - findOk = false - return fmt.Errorf("REVERT FAILED %s", check.GetGoPath()) - } + if argv.KeepGOMOD { + log.Info("TRY THE CRAZY THING HERE") - // update tag - var retag [][]string - retag = append(retag, []string{"git", "tag", "--delete", me.release.version.String()}) - retag = append(retag, []string{"git", "push", "--delete", "origin", me.release.version.String()}) - retag = append(retag, []string{"git", "tag", "-m", me.releaseReasonS, me.release.version.String()}) - retag = append(retag, []string{"git", "push", "origin", me.release.version.String()}) + // delete tag + var retag [][]string + retag = append(retag, []string{"git", "tag", "--delete", me.release.version.String()}) + retag = append(retag, []string{"git", "push", "--delete", "origin", me.release.version.String()}) + if !me.current.RunAll(retag) { + log.Info("delete failed") + findOk = false + me.sh.BadExit("--keep-gomod testing", fmt.Errorf("DELETE TAG FAILED %s", check.GetGoPath())) + } - if !me.current.RunAll(retag) { - log.Info("retag failed") - findOk = false - return fmt.Errorf("RETAG FAILED %s", check.GetGoPath()) + // switch to devel branch ? + if check.CheckoutDevel() { + // ok? + } else { + // holy crap. die here + me.sh.BadExit("CheckoutDevel() failed", nil) + } + retag = append(retag, []string{"git", "tag", "-m", me.releaseReasonS, me.release.version.String()}) + retag = append(retag, []string{"git", "push", "origin", me.release.version.String()}) + + if !me.current.RunAll(retag) { + log.Info("retag failed") + me.sh.BadExit("--keep-gomod testing", fmt.Errorf("RETAG FAILED %s", check.GetGoPath())) + } + me.sh.BadExit("did --keep-gomod work?", nil) // MUST FAIL HERE + } else { + // unwind and re-tag. Now that the go.mod and go.sum are published, revert + // to the development branch + if !me.current.RevertMasterToDevel() { + log.Info("Revert Failed") + findOk = false + return fmt.Errorf("REVERT FAILED %s", check.GetGoPath()) + } + + // update tag + var retag [][]string + retag = append(retag, []string{"git", "tag", "--delete", me.release.version.String()}) + retag = append(retag, []string{"git", "push", "--delete", "origin", me.release.version.String()}) + retag = append(retag, []string{"git", "tag", "-m", me.releaseReasonS, me.release.version.String()}) + retag = append(retag, []string{"git", "push", "origin", me.release.version.String()}) + + if !me.current.RunAll(retag) { + log.Info("retag failed") + findOk = false + return fmt.Errorf("RETAG FAILED %s", check.GetGoPath()) + } } log.Info("EVERYTHING OK. RERELEASED", me.current.GetGoPath()) |
