package mage_helpers import ( "fmt" "os/exec" "strings" "github.com/Masterminds/semver" ) func HasChanges(previousCommit string, folder string) bool { fmt.Println(fmt.Sprintf("Comparing changes from: %v for %v", previousCommit, folder)) commandArgs := []string{ `diff`, `--name-only`, previousCommit + `..HEAD`, folder, } cmd := exec.Command("git", commandArgs...) output, err := cmd.CombinedOutput() if err != nil { fmt.Println(err) } changes := strings.Fields(string(output)) if len(changes) > 0 { fmt.Println(fmt.Sprintf("Has %v changes", folder)) return true } fmt.Println("No changes") return false } func CurrentCommit() string { commandArgs := []string{ `rev-parse`, `--short`, `HEAD`, } cmd := exec.Command("git", commandArgs...) output, err := cmd.CombinedOutput() if err != nil { fmt.Println(err) } return string(output) } func CreateReleaseTag() { // Get version and increase version number previousVersion, err := semver.NewVersion(GetLatestGitTag()) if err != nil { fmt.Println(err) } fmt.Println(previousVersion) newVersion := previousVersion.IncMinor() fmt.Println(newVersion) // Create git tag newTagName := newVersion.Original() commandArgs := []string{ `tag`, newTagName, } cmd := exec.Command("git", commandArgs...) _, err = cmd.CombinedOutput() if err != nil { fmt.Println(err) } // Push new tag commandArgs = []string{ `push`, `origin`, newTagName, } cmd = exec.Command("git", commandArgs...) _, err = cmd.CombinedOutput() if err != nil { fmt.Println(err) } return } func GetLatestGitTag() string { commandArgs := []string{ `describe`, `--tags`, } cmd := exec.Command("git", commandArgs...) output, err := cmd.CombinedOutput() if err != nil { fmt.Println(err) } tag := string(output) tag = strings.TrimSuffix(tag, "\n") fmt.Println(tag) return tag }