export GOBIN ?= $(shell pwd)/bin GOLINT = $(GOBIN)/golint GO_FILES := $(shell \ find . '(' -path '*/.*' -o -path './vendor' ')' -prune \ -o -name '*.go' -print | cut -b3-) .PHONY: build build: go build ./... .PHONY: install install: go mod download .PHONY: test test: go test -v -race ./... go test -v -trace=/dev/null . .PHONY: cover cover: go test -race -coverprofile=cover.out -coverpkg=./... ./... go tool cover -html=cover.out -o cover.html $(GOLINT): go install golang.org/x/lint/golint .PHONY: lint lint: $(GOLINT) @rm -rf lint.log @echo "Checking formatting..." @gofmt -d -s $(GO_FILES) 2>&1 | tee lint.log @echo "Checking vet..." @go vet ./... 2>&1 | tee -a lint.log @echo "Checking lint..." @$(GOLINT) ./... 2>&1 | tee -a lint.log @echo "Checking for unresolved FIXMEs..." @git grep -i fixme | grep -v -e '^vendor/' -e '^Makefile' | tee -a lint.log @[ ! -s lint.log ]