75 lines
2.0 KiB
Makefile
75 lines
2.0 KiB
Makefile
export GO15VENDOREXPERIMENT=1
|
|
|
|
PACKAGES := $(shell glide nv)
|
|
|
|
GO_FILES := $(shell \
|
|
find . '(' -path '*/.*' -o -path './vendor' ')' -prune \
|
|
-o -name '*.go' -print | cut -b3-)
|
|
|
|
.PHONY: install
|
|
install:
|
|
glide --version || go get github.com/Masterminds/glide
|
|
glide install
|
|
|
|
.PHONY: build
|
|
build:
|
|
go build -i $(PACKAGES)
|
|
|
|
.PHONY: test
|
|
test:
|
|
go test -cover -race $(PACKAGES)
|
|
|
|
.PHONY: gofmt
|
|
gofmt:
|
|
$(eval FMT_LOG := $(shell mktemp -t gofmt.XXXXX))
|
|
@gofmt -e -s -l $(GO_FILES) > $(FMT_LOG) || true
|
|
@[ ! -s "$(FMT_LOG)" ] || (echo "gofmt failed:" | cat - $(FMT_LOG) && false)
|
|
|
|
.PHONY: govet
|
|
govet:
|
|
$(eval VET_LOG := $(shell mktemp -t govet.XXXXX))
|
|
@go vet $(PACKAGES) 2>&1 \
|
|
| grep -v '^exit status' > $(VET_LOG) || true
|
|
@[ ! -s "$(VET_LOG)" ] || (echo "govet failed:" | cat - $(VET_LOG) && false)
|
|
|
|
.PHONY: golint
|
|
golint:
|
|
@go get github.com/golang/lint/golint
|
|
$(eval LINT_LOG := $(shell mktemp -t golint.XXXXX))
|
|
@cat /dev/null > $(LINT_LOG)
|
|
@$(foreach pkg, $(PACKAGES), golint $(pkg) >> $(LINT_LOG) || true;)
|
|
@[ ! -s "$(LINT_LOG)" ] || (echo "golint failed:" | cat - $(LINT_LOG) && false)
|
|
|
|
.PHONY: staticcheck
|
|
staticcheck:
|
|
@go get honnef.co/go/tools/cmd/staticcheck
|
|
$(eval STATICCHECK_LOG := $(shell mktemp -t staticcheck.XXXXX))
|
|
@staticcheck $(PACKAGES) 2>&1 > $(STATICCHECK_LOG) || true
|
|
@[ ! -s "$(STATICCHECK_LOG)" ] || (echo "staticcheck failed:" | cat - $(STATICCHECK_LOG) && false)
|
|
|
|
.PHONY: lint
|
|
lint: gofmt govet golint staticcheck
|
|
|
|
.PHONY: cover
|
|
cover:
|
|
./scripts/cover.sh $(shell go list $(PACKAGES))
|
|
go tool cover -html=cover.out -o cover.html
|
|
|
|
update-license:
|
|
@go get go.uber.org/tools/update-license
|
|
@update-license \
|
|
$(shell go list -json $(PACKAGES) | \
|
|
jq -r '.Dir + "/" + (.GoFiles | .[])')
|
|
|
|
##############################################################################
|
|
|
|
.PHONY: install_ci
|
|
install_ci: install
|
|
go get github.com/wadey/gocovmerge
|
|
go get github.com/mattn/goveralls
|
|
go get golang.org/x/tools/cmd/cover
|
|
|
|
.PHONY: test_ci
|
|
test_ci: install_ci
|
|
./scripts/cover.sh $(shell go list $(PACKAGES))
|