github.com/mshitrit/go-mutesting@v0.0.0-20210528084812-ff81dcaedfea/Makefile (about)

     1  .PHONY: all clean clean-coverage generate install install-dependencies install-tools lint test test-verbose test-verbose-with-coverage
     2  
     3  export ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
     4  export PKG := github.com/zimmski/go-mutesting
     5  export ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
     6  
     7  export TEST_TIMEOUT_IN_SECONDS := 240
     8  
     9  $(eval $(ARGS):;@:) # turn arguments into do-nothing targets
    10  export ARGS
    11  
    12  ifdef ARGS
    13  	PKG_TEST := $(ARGS)
    14  else
    15  	PKG_TEST := $(PKG)/...
    16  endif
    17  
    18  all: install-dependencies install-tools install lint test
    19  .PHONY: all
    20  
    21  clean:
    22  	go clean -i $(PKG)/...
    23  	go clean -i -race $(PKG)/...
    24  .PHONY: clean
    25  
    26  clean-coverage:
    27  	find $(ROOT_DIR) | grep .coverprofile | xargs rm
    28  .PHONY: clean-coverage
    29  
    30  generate: clean
    31  	go generate $(PKG)/...
    32  .PHONY: generate
    33  
    34  install:
    35  	go install -v $(PKG)/...
    36  .PHONY: install
    37  
    38  install-dependencies:
    39  	go get -t -v $(PKG)/...
    40  	go test -i -v $(PKG)/...
    41  .PHONY: install-dependencies
    42  
    43  install-tools:
    44  	# generation
    45  	go get -u -v golang.org/x/tools/cmd/stringer
    46  
    47  	# linting
    48  	go get -u -v golang.org/x/lint/golint/...
    49  	go get -u -v github.com/kisielk/errcheck/...
    50  	go get -u -v honnef.co/go/tools/cmd/megacheck
    51  
    52  	# code coverage
    53  	go get -u -v golang.org/x/tools/cmd/cover
    54  	go get -u -v github.com/onsi/ginkgo/ginkgo/...
    55  	go get -u -v github.com/modocache/gover/...
    56  	go get -u -v github.com/mattn/goveralls/...
    57  .PHONY: install-tools
    58  
    59  lint:
    60  	$(ROOT_DIR)/scripts/lint.sh
    61  .PHONY: lint
    62  
    63  test:
    64  	go test -race -test.timeout "$(TEST_TIMEOUT_IN_SECONDS)s" $(PKG_TEST)
    65  .PHONY: test
    66  
    67  test-verbose:
    68  	go test -race -test.timeout "$(TEST_TIMEOUT_IN_SECONDS)s" -v $(PKG_TEST)
    69  .PHONY: test-verbose
    70  
    71  test-verbose-with-coverage:
    72  	ginkgo -r -v -cover -race -skipPackage="testdata"
    73  .PHONY: test-verbose-with-coverage