github.com/andresbott/yamlfmt@v0.1.0/Makefile (about) 1 SHELL := /bin/bash 2 3 4 # ====================================================================================== 5 default: help; 6 7 fmt: ## format go code and run mod tidy 8 @go fmt ./... 9 @go mod tidy 10 11 .PHONY: test 12 test: ## run go tests 13 @go test ./... -cover 14 15 lint: ## run go linter 16 @golangci-lint run 17 18 benchmark: ## run go benchmarks 19 @go test -run=^$$ -bench=. ./... 20 21 verify: fmt test benchmark lint ## run all verification and code structure tiers 22 23 build: ## builds a snapshot build using goreleaser 24 @goreleaser --snapshot --rm-dist 25 26 release: verify ## release a new version of goback 27 @:$(call check_defined, version, "version defined: call with version=\"v1.2.3\"") 28 @git diff --quiet || ( echo 'git is in dirty state' ; exit 1 ) 29 @[ "${version}" ] || ( echo ">> version is not set, usage: make release version=\"v1.2.3\" "; exit 1 ) 30 @git tag -d $(version) || true # delete tag if it exists, allows to overwrite tags 31 @git push --delete origin $(version) || true 32 @git tag -a $(version) -m "Release version: $(version)" 33 @git push origin $(version) 34 @goreleaser --rm-dist 35 36 37 help: ## Show this help 38 @egrep '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m·%-20s\033[0m %s\n", $$1, $$2}'