github.com/drone/runner-go@v1.12.0/environ/semver.go (about) 1 // Copyright 2019 Drone.IO Inc. All rights reserved. 2 // Use of this source code is governed by the Polyform License 3 // that can be found in the LICENSE file. 4 5 package environ 6 7 import ( 8 "fmt" 9 "strings" 10 11 "github.com/coreos/go-semver/semver" 12 ) 13 14 // helper function returns a list of environment variables 15 // that represent the semantic version. 16 func versions(s string) map[string]string { 17 env := map[string]string{} 18 19 s = strings.TrimPrefix(s, "v") 20 version, err := semver.NewVersion(s) 21 if err != nil { 22 env["DRONE_SEMVER_ERROR"] = err.Error() 23 return env 24 } 25 26 env["DRONE_SEMVER"] = version.String() 27 env["DRONE_SEMVER_MAJOR"] = fmt.Sprint(version.Major) 28 env["DRONE_SEMVER_MINOR"] = fmt.Sprint(version.Minor) 29 env["DRONE_SEMVER_PATCH"] = fmt.Sprint(version.Patch) 30 if s := string(version.PreRelease); s != "" { 31 env["DRONE_SEMVER_PRERELEASE"] = s 32 } 33 if version.Metadata != "" { 34 env["DRONE_SEMVER_BUILD"] = version.Metadata 35 } 36 version.Metadata = "" 37 version.PreRelease = "" 38 env["DRONE_SEMVER_SHORT"] = version.String() 39 return env 40 }