From d732d5e3484371927eab92502b8f69d71cc1e416 Mon Sep 17 00:00:00 2001 From: George Blue Date: Fri, 19 Feb 2021 17:20:16 +0000 Subject: [PATCH] chore: refactor Makefile to improve gofmt output - when gofmt fails an error should say so and tell you what to do - Makefile was refactored to add help message and seperate targets --- Makefile | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index c0484f39c..6c955a1af 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,33 @@ +###### Help ################################################################### -.PHONY: test -test: - [ -z "`gofmt -s -w -l -e .`" ] - go vet +.DEFAULT_GOAL = help + +.PHONY: help + +help: ## list Makefile targets + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +###### Targets ################################################################ + +test: version download fmt vet ginkgo ## Runs all build, static analysis, and test steps + +download: ## Download dependencies + go mod download + +vet: ## Run static code analysis + go vet ./... + +ginkgo: ## Run tests using Ginkgo go run github.com/onsi/ginkgo/ginkgo -p -r --randomizeAllSpecs --failOnPending --randomizeSuites --race -docker_test: +fmt: ## Checks that the code is formatted correcty + @@if [ -n "$$(gofmt -s -e -l -d .)" ]; then \ + echo "gofmt check failed: run 'gofmt -d -e -l -w .'"; \ + exit 1; \ + fi + +docker_test: ## Run tests in a container via docker-compose docker-compose build test && docker-compose run --rm test make test + +version: ## Display the version of Go + @@go version