more attempts at release automation
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
9ddf46cf75
commit
f2ad6d3138
|
@ -41,7 +41,7 @@ func globalDisplayOptions(box *gui.Node) {
|
|||
})
|
||||
*/
|
||||
|
||||
me.autoHidePerfect = group1.NewCheckbox("Hide Perfectly clean repos").SetChecked(true)
|
||||
me.autoHidePerfect = group1.NewCheckbox("Hide Perfectly clean repos").SetChecked(false)
|
||||
me.autoHidePerfect.Custom = func() {
|
||||
if me.autoHidePerfect.Checked() {
|
||||
for repo, _ := range me.allrepos {
|
||||
|
|
4
main.go
4
main.go
|
@ -59,6 +59,7 @@ func addRepo(grid *gui.Node, path string, master string, devel string, user stri
|
|||
newRepo.userVersion = grid.NewLabel("").SetProgName("userVersion")
|
||||
|
||||
newRepo.dirtyLabel = grid.NewLabel("")
|
||||
newRepo.goSumStatus = grid.NewLabel("?")
|
||||
|
||||
newRepo.vLabel = grid.NewLabel("").SetProgName("current")
|
||||
|
||||
|
@ -111,7 +112,7 @@ func repoworld() {
|
|||
}
|
||||
|
||||
reposgroup = reposbox.NewGroup("go repositories (read from ~/.config/myrepolist)")
|
||||
reposgrid = reposgroup.NewGrid("test", 8, 1)
|
||||
reposgrid = reposgroup.NewGrid("test", 9, 1)
|
||||
|
||||
reposgrid.NewLabel("") // path goes here
|
||||
|
||||
|
@ -122,6 +123,7 @@ func repoworld() {
|
|||
reposgrid.NewLabel("user version")
|
||||
|
||||
reposgrid.NewLabel("Status")
|
||||
reposgrid.NewLabel("go.sum")
|
||||
|
||||
reposgrid.NewLabel("Current Version").SetProgName("Current Version")
|
||||
|
||||
|
|
|
@ -13,13 +13,15 @@ var release releaseStruct
|
|||
type releaseStruct struct {
|
||||
current *repo
|
||||
|
||||
win *gadgets.BasicWindow
|
||||
box *gui.Node
|
||||
group *gui.Node
|
||||
grid *gui.Node
|
||||
repo *gadgets.OneLiner
|
||||
win *gadgets.BasicWindow
|
||||
box *gui.Node
|
||||
group *gui.Node
|
||||
grid *gui.Node
|
||||
repo *gadgets.OneLiner
|
||||
status *gadgets.OneLiner
|
||||
notes *gadgets.OneLiner
|
||||
notes *gadgets.OneLiner
|
||||
version *gadgets.OneLiner
|
||||
reason *gadgets.OneLiner
|
||||
|
||||
openrepo *gui.Node
|
||||
}
|
||||
|
@ -42,6 +44,9 @@ func createReleaseWindow() {
|
|||
release.group = release.box.NewGroup("things")
|
||||
release.grid = release.group.NewGrid("buildOptions", 2, 1)
|
||||
|
||||
// do an initial scan of all the repos
|
||||
scanGoSum()
|
||||
|
||||
release.grid.NewButton("next repo", func() {
|
||||
log.Info("find the next repo to release here")
|
||||
findNextRepo()
|
||||
|
@ -55,37 +60,76 @@ func createReleaseWindow() {
|
|||
if release.current.status.CheckGoSum() {
|
||||
log.Info("repo has go.sum requirements that are clean")
|
||||
release.status.SetValue("CLEAN")
|
||||
release.current.goSumStatus.SetValue("CLEAN")
|
||||
} else {
|
||||
log.Info("repo has go.sum requirements that are screwed up")
|
||||
release.status.SetValue("BAD")
|
||||
release.current.goSumStatus.SetValue("BAD")
|
||||
}
|
||||
release.current.status.Update()
|
||||
release.current.newScan()
|
||||
|
||||
if release.current.dirtyLabel.String() == "PERFECT" {
|
||||
return
|
||||
}
|
||||
|
||||
// log.Info("find the next repo to release here")
|
||||
// release.current.status.Toggle()
|
||||
release.current.status.Toggle()
|
||||
})
|
||||
release.openrepo.Disable()
|
||||
|
||||
release.repo = gadgets.NewOneLiner(release.grid, "repo")
|
||||
release.status = gadgets.NewOneLiner(release.grid, "status")
|
||||
release.notes = gadgets.NewOneLiner(release.grid, "notes")
|
||||
|
||||
release.version = gadgets.NewOneLiner(release.grid, "version")
|
||||
release.version.SetValue("0.13.11")
|
||||
|
||||
release.reason = gadgets.NewOneLiner(release.grid, "reason")
|
||||
release.reason.SetValue("release automation")
|
||||
|
||||
release.grid.NewButton("send version", func() {
|
||||
log.Info("set version()")
|
||||
release.current.status.SetVersion("0", "13", "11", "release automation")
|
||||
})
|
||||
release.grid.NewButton("set ignore", func() {
|
||||
tmp := release.current.goSumStatus.String()
|
||||
log.Info("trying to set repo IGNORE is now =", tmp)
|
||||
release.current.goSumStatus.SetValue("IGNORE")
|
||||
release.current.goSumStatus.SetLabel("IGNORE")
|
||||
release.current.goSumStatus.SetText("IGNORE")
|
||||
})
|
||||
}
|
||||
|
||||
func findNextRepo() {
|
||||
for repo, _ := range me.allrepos {
|
||||
latestversion := repo.status.GetLastTagVersion()
|
||||
status := repo.dirtyLabel.String()
|
||||
if status == "PERFECT" {
|
||||
goSumS := repo.goSumStatus.String()
|
||||
dirtyS := repo.dirtyLabel.String()
|
||||
|
||||
log.Info("repo", repo.String(), goSumS, dirtyS)
|
||||
if goSumS == "IGNORE" {
|
||||
continue
|
||||
}
|
||||
if repo.status.CheckDirty() {
|
||||
log.Info("dirty repo:", latestversion, status, repo.status.String())
|
||||
// latestversion := repo.status.GetLastTagVersion()
|
||||
if goSumS == "CLEAN" {
|
||||
if dirtyS == "PERFECT" {
|
||||
continue
|
||||
}
|
||||
release.repo.SetValue(repo.status.String())
|
||||
release.status.SetValue("dirty")
|
||||
release.notes.SetValue("You must commit your changes\nbefore you can continue")
|
||||
release.status.SetValue("clean")
|
||||
release.notes.SetValue("check manually")
|
||||
release.current = repo
|
||||
release.openrepo.Enable()
|
||||
return
|
||||
}
|
||||
if goSumS == "DIRTY" {
|
||||
release.repo.SetValue(repo.status.String())
|
||||
release.status.SetValue("dirty")
|
||||
release.notes.SetValue("commit changes")
|
||||
release.current = repo
|
||||
release.openrepo.Enable()
|
||||
return
|
||||
}
|
||||
log.Info("repo:", latestversion, status, repo.status.String())
|
||||
}
|
||||
log.Info("tried to find() but not sure what to do next")
|
||||
}
|
||||
|
|
49
scan.go
49
scan.go
|
@ -73,3 +73,52 @@ func (r *repo) getStatus() string {
|
|||
log.Warn("Branches are not Perfect")
|
||||
return "merge"
|
||||
}
|
||||
|
||||
func scanGoSum() {
|
||||
for repo, _ := range me.allrepos {
|
||||
latestversion := repo.status.GetLastTagVersion()
|
||||
if repo.goSumStatus.String() == "BAD" {
|
||||
continue
|
||||
}
|
||||
if repo.goSumStatus.String() == "DIRTY" {
|
||||
continue
|
||||
}
|
||||
if repo.status.CheckDirty() {
|
||||
log.Info("dirty repo:", latestversion, repo.status.String())
|
||||
log.Info("dirty repo.goSumStatus =", repo.goSumStatus.String())
|
||||
repo.goSumStatus.SetLabel("DIRTY")
|
||||
|
||||
// release.repo.SetValue(repo.status.String())
|
||||
// release.status.SetValue("dirty")
|
||||
// release.notes.SetValue("You must commit your changes\nbefore you can continue")
|
||||
// release.current = repo
|
||||
// release.openrepo.Enable()
|
||||
continue
|
||||
}
|
||||
if repo.status.CheckGoSum() {
|
||||
log.Info("repo has go.sum requirements that are clean")
|
||||
repo.goSumStatus.SetLabel("CLEAN")
|
||||
} else {
|
||||
log.Info("repo has go.sum requirements that are screwed up")
|
||||
repo.goSumStatus.SetLabel("BAD")
|
||||
|
||||
// release.repo.SetValue(repo.status.String())
|
||||
// release.status.SetValue("bad")
|
||||
// release.notes.SetValue("the go.sum file is wrong")
|
||||
// release.current = repo
|
||||
// release.openrepo.Enable()
|
||||
continue
|
||||
}
|
||||
status := repo.dirtyLabel.String()
|
||||
if status == "PERFECT" {
|
||||
continue
|
||||
} else {
|
||||
repo.status.Update()
|
||||
repo.newScan()
|
||||
}
|
||||
|
||||
// log.Info("find the next repo to release here")
|
||||
log.Info("repo:", latestversion, status, repo.status.String())
|
||||
}
|
||||
log.Info("scan() did everything, not sure what to do next")
|
||||
}
|
||||
|
|
|
@ -71,6 +71,7 @@ type repo struct {
|
|||
lastTag *gui.Node // last tagged version label
|
||||
vLabel *gui.Node // version label
|
||||
dirtyLabel *gui.Node // git state (dirty or not?)
|
||||
goSumStatus *gui.Node // what is the state of the go.sum file
|
||||
|
||||
// masterName *gui.Node // the master branch name
|
||||
masterVersion *gui.Node // the master branch version
|
||||
|
|
Loading…
Reference in New Issue