-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
37 lines (27 loc) · 1016 Bytes
/
Makefile
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
37
VERSION_VAR := main.Version
VERSION_VALUE ?= $(shell cat VERSION.txt)
REVISION_VAR := main.CommitHash
REVISION_VALUE ?= $(shell git rev-parse --short HEAD 2>/dev/null)
BUILT_VAR := main.BuildTime
BUILT_VALUE := $(shell date -u '+%Y-%m-%dT%I:%M:%S%z')
GOBUILD_LDFLAGS ?= \
-X '$(VERSION_VAR)=$(VERSION_VALUE)' \
-X '$(REVISION_VAR)=$(REVISION_VALUE)' \
-X '$(BUILT_VAR)=$(BUILT_VALUE)'
# Option for version bump
BUMP ?= patch
.PHONY: test coverage clean build release version
test:
go test -v ./parser ./state ./kvstore
coverage:
go test -failfast -covermode=atomic -coverprofile=coverage.out ./parser ./state ./kvstore
build:
go build -o spin -x -ldflags "$(GOBUILD_LDFLAGS)"
mv spin ~/go/bin/spin
release:
GOOS=darwin GOARCH=amd64 go build -o spin-darwin -ldflags "-s -w $(GOBUILD_LDFLAGS)"
GOOS=linux GOARCH=amd64 go build -o spin-linux -ldflags "-s -w $(GOBUILD_LDFLAGS)"
version:
python version_bump.py `cat VERSION.txt` --$(BUMP) > VERSION.txt
clean:
go clean -x -i -cache -testcache ./...