Makefile (1219B)
1 # Targets: 2 # 3 # all: Builds the code locally after testing 4 # 5 # fmt: Formats the source files 6 # fmt-check: Check if the source files are formated 7 # build: Builds the code locally 8 # vet: Vets the code 9 # lint: Runs lint over the code (you do not need to fix everything) 10 # test: Runs the tests 11 # cover: Gives you the URL to a nice test coverage report 12 # 13 # install: Builds, tests and installs the code locally 14 15 GOFILES_NOVENDOR = $(shell find . -type f -name '*.go' -not -path "./vendor/*" -not -path "./.git/*") 16 17 .PHONY: all fmt build vet lint test cover install 18 19 # The first target is always the default action if `make` is called without 20 # args we build and install into $GOPATH so that it can just be run 21 22 all: fmt vet test install 23 24 fmt: 25 @gofmt -s -w ${GOFILES_NOVENDOR} 26 27 fmt-check: 28 @([ -z "$(shell gofmt -d $(GOFILES_NOVENDOR) | head)" ]) || (echo "Source is unformatted"; exit 1) 29 30 build: 31 @go build 32 33 vet: 34 @go vet 35 36 lint: 37 @golint *.go 38 39 test: 40 @go test -v ./... 41 42 cover: COVERAGE_FILE := coverage.out 43 cover: 44 @go test -coverprofile=$(COVERAGE_FILE) && \ 45 cover -html=$(COVERAGE_FILE) && rm $(COVERAGE_FILE) 46 47 install: 48 @go install ./...