From a09f208c51e175e0b3d950e7bdfb8bfb694d61d7 Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Fri, 11 Aug 2017 09:47:37 -0700 Subject: [PATCH] Add git commit to the version output. (#900) Now the output would be: ``` ./coredns -version CoreDNS-010 linux/amd64, go1.8, 241e3db ``` In case the local file has been modified, then the output would be (with --dirty): ``` ./coredns -version CoreDNS-010 linux/amd64, go1.8, 241e3db-dirty ``` Signed-off-by: Yong Tang --- Makefile | 4 +++- Makefile.release | 7 ++++--- coremain/run.go | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 8f141ba4e..328e32c89 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +GITCOMMIT := $(shell git describe --dirty --always) + BUILD_VERBOSE := -v TEST_VERBOSE := -v @@ -8,7 +10,7 @@ all: coredns # TODO: Add .go file dependencies. .PHONY: coredns coredns: check godeps - CGO_ENABLED=0 go build $(BUILD_VERBOSE) -ldflags="-s -w" + CGO_ENABLED=0 go build $(BUILD_VERBOSE) -ldflags="-s -w -X github.com/coredns/coredns/coremain.gitCommit=$(GITCOMMIT)" .PHONY: deps deps: core/zmiddleware.go core/dnsserver/zdirectives.go godeps diff --git a/Makefile.release b/Makefile.release index 7f2a334db..37cffe148 100644 --- a/Makefile.release +++ b/Makefile.release @@ -38,6 +38,7 @@ ARCH:=$(shell uname -m) GITHUB:=coredns DOCKER:=coredns DOCKER_IMAGE_NAME:=$(DOCKER)/$(NAME) +GITCOMMIT:=$(shell git describe --dirty --always) all: @echo Use the 'release' target to start a release @@ -66,17 +67,17 @@ build: build-arm build-darwin build-linux .PHONY: build-linux build-linux: @echo Building: linux $(VERSION) - mkdir -p build/Linux && CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o build/Linux/$(NAME) + mkdir -p build/Linux && CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w -X github.com/coredns/coredns/coremain.gitCommit=$(GITCOMMIT)" -o build/Linux/$(NAME) .PHONY: build-darwin build-darwin: @echo Building: darwin $(VERSION) - mkdir -p build/Darwin && CGO_ENABLED=0 GOOS=darwin go build -ldflags="-s -w" -o build/Darwin/$(NAME) + mkdir -p build/Darwin && CGO_ENABLED=0 GOOS=darwin go build -ldflags="-s -w -X github.com/coredns/coredns/coremain.gitCommit=$(GITCOMMIT)" -o build/Darwin/$(NAME) .PHONY: build-arm build-arm: @echo Building: arm $(VERSION) - mkdir -p build/Linux/Arm && CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags="-s -w" -o build/Linux/Arm/$(NAME) + mkdir -p build/Linux/Arm && CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags="-s -w -X github.com/coredns/coredns/coremain.gitCommit=$(GITCOMMIT)" -o build/Linux/Arm/$(NAME) .PHONY: tar diff --git a/coremain/run.go b/coremain/run.go index 730268371..71f968c98 100644 --- a/coremain/run.go +++ b/coremain/run.go @@ -168,7 +168,7 @@ func showVersion() { // versionString returns the CoreDNS version as a string. func versionString() string { - return fmt.Sprintf("%s-%s\n", caddy.AppName, caddy.AppVersion) + return fmt.Sprintf("%s-%s\n%s/%s, %s, %s\n", caddy.AppName, caddy.AppVersion, runtime.GOOS, runtime.GOARCH, runtime.Version(), gitCommit) } // setVersion figures out the version information