Merge pull request #40 from coreos/inject-version-from-git-data
*: determine version from git
This commit is contained in:
		
							
								
								
									
										25
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,33 +1,24 @@ | ||||
| PROJ="poke" | ||||
| ORG_PATH="github.com/coreos" | ||||
| REPO_PATH="$(ORG_PATH)/$(PROJ)" | ||||
| PROJ=poke | ||||
| ORG_PATH=github.com/coreos | ||||
| REPO_PATH=$(ORG_PATH)/$(PROJ) | ||||
| export PATH := $(PWD)/bin:$(PATH) | ||||
|  | ||||
| export GOBIN=$(PWD)/bin | ||||
| export GO15VENDOREXPERIMENT=1 | ||||
| export CGO_ENABLED:=0 | ||||
|  | ||||
| LD_FLAGS="-w -X $(REPO_PATH)/version.Version=$(shell ./scripts/git-version)" | ||||
|  | ||||
| GOOS=$(shell go env GOOS) | ||||
| GOARCH=$(shell go env GOARCH) | ||||
|  | ||||
| COMMIT=$(shell git rev-parse HEAD) | ||||
|  | ||||
| # check if the current commit has a matching tag | ||||
| TAG=$(shell git describe --exact-match --abbrev=0 --tags $(COMMIT) 2> /dev/null || true) | ||||
|  | ||||
| ifeq ($(TAG),) | ||||
| 	VERSION=$(TAG) | ||||
| else | ||||
| 	VERSION=$(COMMIT) | ||||
| endif | ||||
|  | ||||
|  | ||||
| build: bin/poke bin/example-app | ||||
|  | ||||
| bin/poke: FORCE | ||||
| 	@go install $(REPO_PATH)/cmd/poke | ||||
| 	@go install -ldflags $(LD_FLAGS) $(REPO_PATH)/cmd/poke | ||||
|  | ||||
| bin/example-app: FORCE | ||||
| 	@go install $(REPO_PATH)/cmd/example-app | ||||
| 	@go install -ldflags $(LD_FLAGS) $(REPO_PATH)/cmd/example-app | ||||
|  | ||||
| test: | ||||
| 	@go test $(shell go list ./... | grep -v '/vendor/') | ||||
|   | ||||
| @@ -11,8 +11,11 @@ import ( | ||||
| func commandVersion() *cobra.Command { | ||||
| 	return &cobra.Command{ | ||||
| 		Use:   "version", | ||||
| 		Short: "Print the version and exit", | ||||
| 		Run: func(cmd *cobra.Command, args []string) { | ||||
| 			fmt.Printf(`v%s %s %s %s | ||||
| 			fmt.Printf(`dex Version:%s | ||||
| Go Version: %s | ||||
| Go OS/ARCH: %s %s | ||||
| `, version.Version, runtime.Version(), runtime.GOOS, runtime.GOARCH) | ||||
| 		}, | ||||
| 	} | ||||
|   | ||||
							
								
								
									
										21
									
								
								scripts/git-version
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										21
									
								
								scripts/git-version
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| #!/bin/bash -e | ||||
|  | ||||
| # parse the current git commit hash | ||||
| COMMIT=`git rev-parse HEAD` | ||||
|  | ||||
| # check if the current commit has a matching tag | ||||
| TAG=$(git describe --exact-match --abbrev=0 --tags ${COMMIT} 2> /dev/null || true) | ||||
|  | ||||
| # use the matching tag as the version, if available | ||||
| if [ -z "$TAG" ]; then | ||||
|     VERSION=$COMMIT | ||||
| else | ||||
|     VERSION=$TAG | ||||
| fi | ||||
|  | ||||
| # check for changed files (not untracked files) | ||||
| if [ -n "$(git diff --shortstat 2> /dev/null | tail -n1)" ]; then | ||||
|     VERSION="${VERSION}-dirty" | ||||
| fi | ||||
|  | ||||
| echo $VERSION | ||||
| @@ -1,5 +1,5 @@ | ||||
| // Package version contains version information for this app. | ||||
| package version | ||||
|  | ||||
| // Version is the semantic version of the server. | ||||
| const Version = "0.1.0" | ||||
| // Version is set by the build scripts. | ||||
| var Version = "was not built properly" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user