-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
69 lines (54 loc) · 1.54 KB
/
Makefile
File metadata and controls
69 lines (54 loc) · 1.54 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
NAME := cmd-test
VERSION := v0.0.1
REVISION := $(shell git rev-parse --short HEAD)
OSARCH := "darwin/amd64 linux/amd64"
PROJECTROOT := "./"
ifndef GOBIN
GOBIN := $(shell echo "$${GOPATH%%:*}/bin")
endif
LINT := $(GOBIN)/golint
GOX := $(GOBIN)/gox
ARCHIVER := $(GOBIN)/archiver
DEP := $(GOBIN)/dep
JUNITREPORT := $(JUNITREPORT)/dep
$(LINT): ; @go get github.com/golang/lint/golint
$(GOX): ; @go get github.com/mitchellh/gox
$(ARCHIVER): ; @go get github.com/mholt/archiver/cmd/archiver
$(DEP): ; @go get github.com/golang/dep/cmd/dep
$(JUNITREPORT): ; @go get github.com/jstemmer/go-junit-report
.DEFAULT_GOAL := build
.PHONY: deps
deps: $(DEP)
dep ensure
.PHONY: build
build: deps
go build -o bin/$(NAME) ${PROJECTROOT}
.PHONY: install
install: deps
go install ${PROJECTROOT}
.PHONY: cross-build
cross-build: deps $(GOX)
rm -rf ./out && \
gox -osarch $(OSARCH) -output "./out/${NAME}_${VERSION}_{{.OS}}_{{.Arch}}/{{.Dir}}" ${PROJECTROOT}
.PHONY: package
package: cross-build $(ARCHIVER)
rm -rf ./pkg && mkdir ./pkg && \
cd out && \
find * -type d -exec archiver make ../pkg/{}.tar.gz {}/$(NAME) \; && \
cd ../
.PHONY: lint
lint: $(LINT)
@golint $(PROJECTROOT)/cmd/...
.PHONY: vet
vet:
@go vet $(PROJECTROOT)/cmd/...
.PHONY: test
test: deps
@go test -v $(PROJECTROOT)/cmd/...
.PHONY: test-junit
test-junit: deps $(JUNITREPORT)
@go test -v $(PROJECTROOT)/cmd/... 2>&1 | go-junit-report > report.xml
.PHONY: check
check: lint vet test build
.PHONY: check-job
check-job: lint vet test-junit build