1- LINTERS =$(shell grep "// lint" tools/tools.go | awk '{gsub(/\"/, "", $$1) ; print $$1}' | awk -F / '{print $$NF}') \
2- gofmt \
3- vet
4-
5- ci : $(LINTERS ) cover
1+ export GO111MODULE := on
2+ export PATH := ./bin:$(PATH )
63
4+ ci : bootstrap lint cover
75.PHONY : ci
86
97# ################################################
108# Bootstrapping for base golang package and tool deps
119# ################################################
1210
13- CMD_PKGS =$(shell grep ' "' tools/tools.go | awk -F '"' '{print $$2}')
14-
15- define VENDOR_BIN_TMPL
16- tools/vendor/bin/$(notdir $(1 ) ) : tools/vendor/$(1 ) | vendor tools/vendor
17- GOBIN=`pwd`/tools/vendor/bin sh -c 'cd tools && go install ./vendor/$(1 ) '
18- VENDOR_BINS += tools/vendor/bin/$(notdir $(1 ) )
19- tools/vendor/$(1 ) : tools/vendor
20- endef
21-
22- $(foreach cmd_pkg,$(CMD_PKGS),$(eval $(call VENDOR_BIN_TMPL,$(cmd_pkg))))
23-
24- $(patsubst % ,% -bin,$(filter-out gofmt vet,$(LINTERS ) ) ) : % -bin: tools/vendor/bin/%
25- gofmt-bin vet-bin :
26-
27- tools/vendor : tools/go.sum
28- GO111MODULE=on sh -c ' cd tools && go mod vendor'
29-
30- vendor : go.sum
31- GO111MODULE=on go mod vendor
11+ bootstrap :
12+ curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s v1.21.0
13+ .PHONY : bootstrap
3214
3315mod-update :
34- GO111MODULE=on go get -u -m
35- GO111MODULE=on go mod tidy
16+ go get -u -m
17+ go mod tidy
3618
3719mod-tidy :
38- GO111MODULE=on go mod tidy
20+ go mod tidy
3921
4022.PHONY : $(CMD_PKGS )
4123.PHONY : mod-update mod-tidy
4224
4325# ################################################
4426# Test and linting
4527# ################################################
28+ # Run all the linters
29+ lint :
30+ bin/golangci-lint run ./...
31+ .PHONY : lint
4632
47- test : vendor
33+ test :
4834 CGO_ENABLED=0 go test $$(go list ./... | grep -v generated )
35+ .PHONY : test
4936
50- $(LINTERS ) : % : tools/vendor/bin/gometalinter % -bin tools/vendor
51- PATH=` pwd` /tools/vendor/bin:$$ PATH gometalinter --tests --disable-all --vendor \
52- --deadline=5m -s data --enable $@ ./...
53-
54- COVER_TEST_PKGS: =$(shell find . -type f -name '* _test.go' | grep -v vendor | rev | cut -d "/" -f 2- | rev | grep -v generated | sort -u)
37+ COVER_TEST_PKGS: =$(shell find . -type f -name '* _test.go' | rev | cut -d "/" -f 2- | rev | grep -v generated | sort -u)
5538$(COVER_TEST_PKGS: =-cover): %-cover: all-cover.txt
5639 @CGO_ENABLED=0 go test -v
[email protected] -covermode=atomic ./$*
5740 @if [ -f
[email protected] ]; then \
@@ -62,7 +45,5 @@ $(COVER_TEST_PKGS:=-cover): %-cover: all-cover.txt
6245all-cover.txt :
6346 echo " mode: atomic" > all-cover.txt
6447
65- cover : vendor all-cover.txt $(COVER_TEST_PKGS:=-cover )
66-
67- .PHONY : $(LINTERS ) test
48+ cover : all-cover.txt $(COVER_TEST_PKGS:=-cover )
6849.PHONY : cover all-cover.txt
0 commit comments