auto-version and release only changed repos
This commit is contained in:
parent
0a593ba643
commit
b805fe15c9
|
@ -119,7 +119,15 @@ func globalDisplayOptions(box *gui.Node) {
|
||||||
me.setBranchesToMasterB.Disable()
|
me.setBranchesToMasterB.Disable()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
grid.NextRow()
|
||||||
|
|
||||||
|
var setTarget *gui.Node
|
||||||
|
// check to see if target versions need to be changed
|
||||||
|
setTarget = grid.NewButton("increment target versions", func() {
|
||||||
|
if incrementTargetVersion() {
|
||||||
|
setTarget.SetText("DONE")
|
||||||
|
}
|
||||||
|
})
|
||||||
grid.NextRow()
|
grid.NextRow()
|
||||||
|
|
||||||
group2 := vbox.NewGroup("Debugger")
|
group2 := vbox.NewGroup("Debugger")
|
||||||
|
|
37
main.go
37
main.go
|
@ -4,7 +4,6 @@ import (
|
||||||
"embed"
|
"embed"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
|
||||||
|
|
||||||
"go.wit.com/gui"
|
"go.wit.com/gui"
|
||||||
"go.wit.com/lib/gui/shell"
|
"go.wit.com/lib/gui/shell"
|
||||||
|
@ -149,39 +148,3 @@ func setAllBranchesToMaster() bool {
|
||||||
}
|
}
|
||||||
return worked
|
return worked
|
||||||
}
|
}
|
||||||
|
|
||||||
func setTargetVersion() {
|
|
||||||
// go through and set the target versions for each repo
|
|
||||||
// todo: add sanity checking in repolist to verify these and/or autocompute them
|
|
||||||
// for now, just don't be stupid when you set your ENV vars
|
|
||||||
// widget I versioned early before I knew what the hell this would mean and can
|
|
||||||
// not be down versioned because that's not how GO versioning works. Once you
|
|
||||||
// set the version for a path, it's set in stone forever. (smart system!)
|
|
||||||
// we could rename go.wit.com/widget to go.wit.com/newwidget and restart the versioning
|
|
||||||
// system, but that's rediculous and this servers to always remind me to never make this mistake again
|
|
||||||
var count int
|
|
||||||
for i, repo := range me.repos.View.AllRepos() {
|
|
||||||
if repo == nil {
|
|
||||||
log.Info("initial scan repo = nil", i)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if repo.Status == nil {
|
|
||||||
log.Info("repo.status == nil", repo.Name())
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if repo.GoPath() == "go.wit.com/widget" {
|
|
||||||
repo.Status.SetTargetVersion("v" + widgetVersion)
|
|
||||||
} else {
|
|
||||||
repo.Status.SetTargetVersion("v" + releaseVersion)
|
|
||||||
}
|
|
||||||
if strings.HasPrefix(repo.GoPath(), "go.wit.com/dev/") {
|
|
||||||
lasttag := repo.Status.GetLastTagVersion()
|
|
||||||
repo.Status.SetTargetVersion(lasttag)
|
|
||||||
}
|
|
||||||
// repo.NewScan()
|
|
||||||
count += 1
|
|
||||||
}
|
|
||||||
log.Info("target versions set for", count, "repos")
|
|
||||||
}
|
|
||||||
|
|
|
@ -2,8 +2,8 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"go.wit.com/lib/gadgets"
|
"go.wit.com/lib/gadgets"
|
||||||
"go.wit.com/lib/gui/repolist"
|
|
||||||
"go.wit.com/lib/gui/gowit"
|
"go.wit.com/lib/gui/gowit"
|
||||||
|
"go.wit.com/lib/gui/repolist"
|
||||||
"go.wit.com/log"
|
"go.wit.com/log"
|
||||||
|
|
||||||
"go.wit.com/gui"
|
"go.wit.com/gui"
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"go.wit.com/log"
|
||||||
|
)
|
||||||
|
|
||||||
|
func setTargetVersion() {
|
||||||
|
// go through and set the target versions for each repo
|
||||||
|
// todo: add sanity checking in repolist to verify these and/or autocompute them
|
||||||
|
// for now, just don't be stupid when you set your ENV vars
|
||||||
|
// widget I versioned early before I knew what the hell this would mean and can
|
||||||
|
// not be down versioned because that's not how GO versioning works. Once you
|
||||||
|
// set the version for a path, it's set in stone forever. (smart system!)
|
||||||
|
// we could rename go.wit.com/widget to go.wit.com/newwidget and restart the versioning
|
||||||
|
// system, but that's rediculous and this servers to always remind me to never make this mistake again
|
||||||
|
var count int
|
||||||
|
for i, repo := range me.repos.View.AllRepos() {
|
||||||
|
if repo == nil {
|
||||||
|
log.Info("initial scan repo = nil", i)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if repo.Status == nil {
|
||||||
|
log.Info("repo.status == nil", repo.Name())
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if repo.GoPath() == "go.wit.com/widget" {
|
||||||
|
repo.Status.SetTargetVersion("v" + widgetVersion)
|
||||||
|
} else {
|
||||||
|
repo.Status.SetTargetVersion("v" + releaseVersion)
|
||||||
|
}
|
||||||
|
if strings.HasPrefix(repo.GoPath(), "go.wit.com/dev/") {
|
||||||
|
lasttag := repo.Status.GetLastTagVersion()
|
||||||
|
repo.Status.SetTargetVersion(lasttag)
|
||||||
|
}
|
||||||
|
// repo.NewScan()
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
log.Info("target versions set for", count, "repos")
|
||||||
|
}
|
||||||
|
|
||||||
|
// trys to figure out if the version needs to be incremented
|
||||||
|
func incrementTargetVersion() bool {
|
||||||
|
var count int
|
||||||
|
for _, repo := range me.repos.View.AllRepos() {
|
||||||
|
if repo.ReadOnly() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
lasttag := repo.Status.GetLastTagVersion()
|
||||||
|
master := repo.Status.GetMasterVersion()
|
||||||
|
|
||||||
|
if lasttag != master {
|
||||||
|
log.Info("increment target version", repo.GoPath(), lasttag, master)
|
||||||
|
count += 1
|
||||||
|
} else {
|
||||||
|
// check go dependancies for target version changes
|
||||||
|
}
|
||||||
|
}
|
||||||
|
log.Info("need to update target versions for", count, "repos")
|
||||||
|
if count == 0 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
Loading…
Reference in New Issue