summaryrefslogtreecommitdiff
path: root/releaseWindow.go
diff options
context:
space:
mode:
Diffstat (limited to 'releaseWindow.go')
-rw-r--r--releaseWindow.go133
1 files changed, 23 insertions, 110 deletions
diff --git a/releaseWindow.go b/releaseWindow.go
index 0af24f5..41f75af 100644
--- a/releaseWindow.go
+++ b/releaseWindow.go
@@ -4,7 +4,6 @@ package main
import (
"os"
"path/filepath"
- "strings"
"go.wit.com/gui"
"go.wit.com/log"
@@ -86,119 +85,14 @@ func createReleaseBox(box *gui.Node) {
return
}
})
+
release.releaseVersionB = release.grid.NewButton("release version", func() {
buttonDisable()
- if release.releaseVersionB.String() != "release version "+release.version.String() {
- log.Warn("something went wrong with the release.version:", release.version.String())
- return
- }
- if strings.HasPrefix(release.version.String(), "v") {
- log.Warn("everything is ok. version starts with v.", release.version.String())
- } else {
- log.Warn("version does not start with v.", release.version.String())
- return
- }
- switch release.status.String() {
- case "PRIMATIVE":
- log.Warn("can do PRIMATIVE", release.version.String())
- case "GOOD":
- log.Warn("GOOD. lots of go.sum checks passed", release.version.String())
- case "manually chosen":
- log.Warn("attempting manual release", release.version.String())
- case "NOT READY":
- log.Warn("attempting to release. TODO: recheck go.sum here", release.version.String())
- log.Warn("Sleep 10")
- log.Sleep(10)
- case "UNRELEASED":
- log.Warn("attempting to release. TODO: dig deep on go.sum here", release.version.String())
- log.Warn("Sleep 10")
- log.Sleep(10)
- default:
- log.Warn("what is this?", release.version.String(), release.status.String())
- return
- }
-
- if release.current.status.ReadOnly() {
- log.Info("sorry, it's read-only")
- return
- }
- if release.current.status.CheckDirty() {
- log.Info("sorry, it's still dirty")
- return
- }
-
- curName := release.current.status.GetCurrentBranchName()
- mName := release.current.status.GetMasterBranchName()
- if curName != mName {
- log.Info("\trepo is not working from main branch", curName, "!=", mName)
- return
- }
-
- log.Info("\ttag and push", curName, release.version.String(), me.releaseReasonS)
-
- var all [][]string
- all = append(all, []string{"git", "add", "-f", "go.mod"})
- if release.current.status.CheckPrimativeGoMod() {
- // don't add go.sum here. TODO: check for go.sum file and fail
- } else {
- all = append(all, []string{"git", "add", "-f", "go.sum"})
- }
- all = append(all, []string{"git", "commit", "-m", me.releaseReasonS})
- all = append(all, []string{"git", "push"})
- all = append(all, []string{"git", "tag", "-m", me.releaseReasonS, release.version.String()})
- all = append(all, []string{"git", "push", "origin", release.version.String()})
-
- if doAll(release.current, all) {
- log.Info("EVERYTHING OK")
-
- gopath := release.current.String()
- cmd := []string{"go", "get", "-v", gopath + "@" + release.version.String()}
- log.Info("SHOULD RUN cmd HERE:", cmd)
-
- if release.guireleaser == nil {
- log.Info("CAN NOT SELF UPDATE HERE. cmd =", cmd)
- return
- } else {
- os.Unsetenv("GO111MODULE")
- log.Info("TRYING TO SELF UPDATE HERE. cmd =", cmd)
- err, out := release.guireleaser.status.RunCmd(cmd)
- if gopath == "go.wit.com/apps/guireleaser" {
- // ignore errors on updating myself
- log.Info("IGNORE SELF UPDATE ERROR. cmd =", cmd)
- err = nil
- }
- if err == nil {
- log.Info("SELF UPDATE OK. out =", out)
- log.Info("SELF UPDATE WORKED")
- release.current.setGoSumStatus("RELEASED")
-
- release.current.status.UpdateCurrent()
- // repo.newScan()
- cbname := release.current.status.GetCurrentBranchName()
- cbversion := release.current.status.GetCurrentBranchVersion()
- lasttag := release.current.status.GetLastTagVersion()
- release.current.lastTag.SetLabel(lasttag)
- release.current.vLabel.SetLabel(cbname + " " + cbversion)
-
- // scan for new repo
- findNextDirty("")
- release.current.status.CheckSafeGoSumRemake()
- release.current.status.MakeRedomod()
- if ok, _ := release.current.status.CheckGoSum(); ok {
- log.Info("repo has go.sum requirements that are clean")
- // release.current.setGoSumStatus("CLEAN")
- release.status.SetValue("GOOD")
- release.notes.SetValue("CheckGoSum() does not seem to lie")
- }
- } else {
- log.Info("SELF UPDATE FAILED err =", err)
- log.Info("SELF UPDATE FAILED out =", out)
- return
- }
- }
+ if doRelease() {
buttonEnable()
+ log.Info("doRelease() worked")
} else {
- log.Info("SOMETHING FAILED")
+ log.Info("doRelease() failed")
}
})
@@ -341,6 +235,24 @@ func createReleaseBox(box *gui.Node) {
}
buttonEnable()
})
+
+ release.grid.NewButton("release(5)", func() {
+ buttonDisable()
+ for n := 0; n <= 5; n++ {
+ if doRelease() {
+ log.Info("doRelease() worked")
+ } else {
+ if release.status.String() == "ALL DONE?" {
+ log.Info("maybe ALL DONE?")
+ buttonEnable()
+ return
+ }
+ log.Info("doRelease() failed")
+ return
+ }
+ }
+ buttonEnable()
+ })
}
func goodCheckGoSum() bool {
@@ -571,6 +483,7 @@ func findNextDirty(onlyKind string) bool {
}
}
log.Info("tried to findNextDirty() but not sure what to do next")
+ release.status.SetValue("ALL DONE?")
return false
}