diff --git a/Makefile b/Makefile index d9ddca9..928c554 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,25 @@ -test: - go test -v ./... \ No newline at end of file +.DEFAULT_GOAL := help + +.PHONY: help +help: ## Outputs the help. + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +.PHONY: test +test: ## Runs all unit, integration and example tests. + go test -race -v ./... + +.PHONY: vet +vet: ## Runs go vet (to detect suspicious constructs). + go vet ./... + +.PHONY: fmt +fmt: ## Runs go fmt (to check for go coding guidelines). + gofmt -d -s . + +.PHONY: staticcheck +staticcheck: ## Runs static analysis to prevend bugs, foster code simplicity, performance and editor integration. + go get -u honnef.co/go/tools/cmd/staticcheck + staticcheck ./... + +.PHONY: all +all: test vet fmt staticcheck ## Runs all source code quality targets (like test, vet, fmt, staticcheck)