]> git.lizzy.rs Git - micro.git/blobdiff - tools/build-version.go
Fix tag fetching in build-version.go
[micro.git] / tools / build-version.go
index ead81a43c2ed4321ec6d61ecba50edfe59222fad..b4599f0846742f03279236316369f9382a07e7ec 100644 (file)
@@ -12,22 +12,28 @@ func getTag(match ...string) (string, *semver.PRVersion) {
        args := append([]string{
                "describe", "--tags",
        }, match...)
-       if tag, err := exec.Command("git", args...).Output(); err != nil {
-               return "", nil
-       } else {
-               tagParts := strings.Split(string(tag), "-")
-               if len(tagParts) == 3 {
-                       if ahead, err := semver.NewPRVersion(tagParts[1]); err == nil {
-                               return tagParts[0], &ahead
-                       }
-               } else if len(tagParts) == 4 {
-                       if ahead, err := semver.NewPRVersion(tagParts[2]); err == nil {
-                               return tagParts[0] + "-" + tagParts[1], &ahead
-                       }
+       var tag []byte
+       var err error
+       if tag, err = exec.Command("git", args...).Output(); err != nil {
+               if _, err := exec.Command("git", "fetch", "tags").Output(); err != nil {
+                       return "", nil
+               }
+               if tag, err = exec.Command("git", args...).Output(); err != nil {
+                       return "", nil
+               }
+       }
+       tagParts := strings.Split(string(tag), "-")
+       if len(tagParts) == 3 {
+               if ahead, err := semver.NewPRVersion(tagParts[1]); err == nil {
+                       return tagParts[0], &ahead
+               }
+       } else if len(tagParts) == 4 {
+               if ahead, err := semver.NewPRVersion(tagParts[2]); err == nil {
+                       return tagParts[0] + "-" + tagParts[1], &ahead
                }
-
-               return string(tag), nil
        }
+
+       return string(tag), nil
 }
 
 func main() {