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