-
Notifications
You must be signed in to change notification settings - Fork 24
/
version.go
36 lines (32 loc) · 976 Bytes
/
version.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package version
import (
"fmt"
"runtime"
"strings"
"github.com/blang/semver/v4"
genericversion "k8s.io/apimachinery/pkg/version"
)
var (
gitVersion = "unknown"
gitCommit = "unknown" // sha1 from git, output of $(git rev-parse HEAD)
gitTreeState = "unknown" // state of git tree, either "clean" or "dirty"
commitDate = "unknown" // build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ')
)
// Version returns a version struct for the build
func Version() genericversion.Info {
info := genericversion.Info{
GitVersion: gitVersion,
GitCommit: gitCommit,
GitTreeState: gitTreeState,
BuildDate: commitDate,
GoVersion: runtime.Version(),
Compiler: runtime.Compiler,
Platform: fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH),
}
v, err := semver.Parse(strings.TrimPrefix(gitVersion, "v"))
if err == nil {
info.Major = fmt.Sprintf("%d", v.Major)
info.Minor = fmt.Sprintf("%d", v.Minor)
}
return info
}