diff --git a/Makefile b/Makefile index 0d08651886..c2ee7d2d47 100755 --- a/Makefile +++ b/Makefile @@ -26,6 +26,10 @@ INSTALL_SIZE ?= $(shell du out/minikube-windows-amd64.exe | cut -f1) BUILDROOT_BRANCH ?= 2018.05.3 REGISTRY?=gcr.io/k8s-minikube +# Get git commit id +COMMIT_NO := $(shell git rev-parse HEAD 2> /dev/null || true) +COMMIT ?= $(if $(shell git status --porcelain --untracked-files=no),"${COMMIT_NO}-dirty","${COMMIT_NO}") + HYPERKIT_BUILD_IMAGE ?= karalabe/xgo-1.12.x # NOTE: "latest" as of 2019-05-09. kube-cross images aren't updated as often as Kubernetes BUILD_IMAGE ?= k8s.gcr.io/kube-cross:v1.12.5-1 @@ -57,7 +61,7 @@ BUILD_OS := $(shell uname -s) STORAGE_PROVISIONER_TAG := v1.8.1 # Set the version information for the Kubernetes servers -MINIKUBE_LDFLAGS := -X k8s.io/minikube/pkg/version.version=$(VERSION) -X k8s.io/minikube/pkg/version.isoVersion=$(ISO_VERSION) -X k8s.io/minikube/pkg/version.isoPath=$(ISO_BUCKET) +MINIKUBE_LDFLAGS := -X k8s.io/minikube/pkg/version.version=$(VERSION) -X k8s.io/minikube/pkg/version.isoVersion=$(ISO_VERSION) -X k8s.io/minikube/pkg/version.isoPath=$(ISO_BUCKET) -X k8s.io/minikube/pkg/version.gitCommitID=$(COMMIT) PROVISIONER_LDFLAGS := "$(MINIKUBE_LDFLAGS) -s -w" MINIKUBEFILES := ./cmd/minikube/ diff --git a/cmd/minikube/cmd/version.go b/cmd/minikube/cmd/version.go index bb77629aba..073f95b879 100644 --- a/cmd/minikube/cmd/version.go +++ b/cmd/minikube/cmd/version.go @@ -32,6 +32,10 @@ var versionCmd = &cobra.Command{ }, Run: func(command *cobra.Command, args []string) { console.OutLn("minikube version: %v", version.GetVersion()) + gitCommitID := version.GetGitCommitID() + if gitCommitID != "" { + console.OutLn("commit: %v", gitCommitID) + } }, } diff --git a/pkg/version/version.go b/pkg/version/version.go index 116d08b54a..62727d9237 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -30,6 +30,9 @@ const VersionPrefix = "v" // version is a private field and should be set when compiling with --ldflags="-X k8s.io/minikube/pkg/version.version=vX.Y.Z" var version = "v0.0.0-unset" +// version is a private field and should be set when compiling with --ldflags="-X k8s.io/minikube/pkg/version.gitCommitID=" +var gitCommitID = "" + // isoVersion is a private field and should be set when compiling with --ldflags="-X k8s.io/minikube/pkg/version.isoVersion=vX.Y.Z" var isoVersion = "v0.0.0-unset" @@ -40,6 +43,11 @@ func GetVersion() string { return version } +// GetGitCommitID returns the git commit id from which it is being built +func GetGitCommitID() string { + return gitCommitID +} + // GetISOVersion returns the current minikube.iso version func GetISOVersion() string { return isoVersion