diff --git a/.travis.yml b/.travis.yml index f952ac9..4909504 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: go go: - - 1.15.x + - 1.19.x before_script: - - make lint-install \ No newline at end of file + - make lint \ No newline at end of file diff --git a/Makefile b/Makefile index 972ae65..3c4c818 100644 --- a/Makefile +++ b/Makefile @@ -3,45 +3,31 @@ SHELL := bash .SHELLFLAGS := -euo pipefail -c .DEFAULT_GOAL := all -BIN_DIR ?= $(shell go env GOPATH)/bin -export PATH := $(PATH):$(BIN_DIR) +RUN_GO_GROUPS := go run oss.indeed.com/go/go-groups@v1.1.3 +RUN_GO_OPINE := go run oss.indeed.com/go/go-opine@v1.3.0 +RUN_GOLANGCI_LINT := go run github.com/golangci/golangci-lint/cmd/golangci-lint@v1.49.0 .PHONY: deps deps: ## download go modules go mod download .PHONY: fmt -fmt: lint/check ## ensure consistent code style - go run oss.indeed.com/go/go-groups -w . - gofmt -s -w . - golangci-lint run --fix > /dev/null 2>&1 || true +fmt: ## ensure consistent code style + $(RUN_GO_GROUPS) -w . + $(RUN_GOLANGCI_LINT) run --fix > /dev/null 2>&1 || true go mod tidy -.PHONY: lint/check -lint/check: - @if ! golangci-lint --version > /dev/null 2>&1; then \ - echo -e "\033[0;33mgolangci-lint is not installed: run \`\033[0;32mmake lint-install\033[0m\033[0;33m\` or install it from https://golangci-lint.run\033[0m"; \ - exit 1; \ - fi - -.PHONY: lint-install -lint-install: ## installs golangci-lint to the go bin dir - @if ! golangci-lint --version > /dev/null 2>&1; then \ - echo "Installing golangci-lint"; \ - curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(BIN_DIR) v1.32.0; \ - fi - .PHONY: lint -lint: lint/check ## run golangci-lint - golangci-lint run - @if [ -n "$$(gofmt -s -l .)" ] || [ -n "$$(go run oss.indeed.com/go/go-groups -d .)" ]; then \ +lint: ## run golangci-lint + $(RUN_GOLANGCI_LINT) run + @if [ -n "$$($(RUN_GO_GROUPS) -l .)" ]; then \ echo -e "\033[0;33mdetected fmt problems: run \`\033[0;32mmake fmt\033[0m\033[0;33m\`\033[0m"; \ exit 1; \ fi .PHONY: test test: lint ## run go tests - go run oss.indeed.com/go/go-opine test -coverprofile=cover.out -junit=report.xml + $(RUN_GO_OPINE) test -coverprofile=cover.out -junit=report.xml .PHONY: all all: test @@ -50,4 +36,4 @@ all: test help: ## displays this help message @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_\/-]+:.*?## / {printf "\033[34m%-12s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \ sort | \ - grep -v '#' \ No newline at end of file + grep -v '#' diff --git a/go.sum b/go.sum index 7fa9365..87a9e9a 100644 --- a/go.sum +++ b/go.sum @@ -12,6 +12,7 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gojuno/minimock/v3 v3.0.4/go.mod h1:HqeqnwV8mAABn3pO5hqF+RE7gjA0jsN8cbbSogoGrzI= +github.com/gojuno/minimock/v3 v3.0.6 h1:YqHcVR10x2ZvswPK8Ix5yk+hMpspdQ3ckSpkOzyF85I= github.com/gojuno/minimock/v3 v3.0.6/go.mod h1:v61ZjAKHr+WnEkND63nQPCZ/DTfQgJdvbCi3IuoMblY= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -48,6 +49,7 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c h1:+aPplBwWcHBo6q9xrfWdMrT9o4kltkmmvpemgIjep/8= github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c/go.mod h1:SbErYREK7xXdsRiigaQiQkI9McGRzYMvlKYaP3Nimdk= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -70,6 +72,7 @@ golang.org/x/tools v0.0.0-20200116004258-96555e0fa59c h1:0PgLJb6GKfSqt6oc+UQVbQb golang.org/x/tools v0.0.0-20200116004258-96555e0fa59c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=