github.com/go-maxhub/gremlins@v1.0.1-0.20231227222204-b03a6a1e3e09/Makefile (about) 1 GO_CMD=go 2 GO_TEST=${GO_CMD} test 3 GO_BUILD=${GO_CMD} build 4 RELEASER_CMD=goreleaser 5 RELEASE=${RELEASER_CMD} release 6 LINTER_CMD=golangci-lint 7 LINT=${LINTER_CMD} run 8 BINARY_NAME=gremlins 9 COVER_OUT=coverage.out 10 TARGET=dist 11 BIN=${TARGET}/bin 12 13 .PHONY: all snap 14 all: lint test build 15 snap: lint test snapshot 16 17 build: ${BIN}/${BINARY_NAME} 18 19 ${BIN}/${BINARY_NAME}: 20 mkdir -p ${BIN} 21 ${GO_BUILD} -o ${BIN}/${BINARY_NAME} cmd/gremlins/main.go 22 23 .PHONY: test 24 test: 25 ${GO_TEST} -race ./... 26 27 .PHONY: cover 28 cover: ${COVER_OUT} 29 30 ${COVER_OUT}: 31 ${GO_TEST} -race -covermode=atomic -cover -coverprofile ${COVER_OUT} ./... 32 33 .PHONY: requirements 34 requirements: 35 go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest 36 go install golang.org/x/tools/go/analysis/passes/fieldalignment/cmd/fieldalignment@latest 37 38 .PHONY: lint 39 lint: 40 ${LINT} ./... 41 42 .PHONY: goimports 43 goimports: 44 goimports --local 'github.com/go-gremlins/gremlins' -v -w . 45 46 .PHONY: fieldalignment 47 fieldalignment: 48 fieldalignment -fix ./... 49 50 .PHONY: snapshot 51 snapshot: 52 ${RELEASE} --snapshot --clean 53 54 .PHONY: clean 55 clean: 56 go clean 57 rm -rf -- ${TARGET} 58 rm -f -- coverage.out