# Directory containing the Makefile.
PROJECT_ROOT = $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
export GOBIN = $(PROJECT_ROOT)/bin
export PATH := $(GOBIN):$(PATH)
GO_FILES = $(shell find . \
-path '*/.*' -prune -o \
'(' -type f -a -name '*.go' ')' -print)
# Additional test flags.
TEST_FLAGS ?=
.PHONY: all
all: lint build test
.PHONY: lint
lint: golangci-lint tidy-lint
.PHONY: build
build:
go build ./...
.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
.PHONY: golangci-lint
golangci-lint:
golangci-lint run
.PHONY: tidy
tidy:
go mod tidy
.PHONY: tidy-lint
tidy-lint:
go mod tidy
git diff --exit-code -- go.mod go.sum