11ALL_GO_MOD_DIRS := $(shell find . -type f -name 'go.mod' -exec dirname {} \; | sort)
2- # extract go minor version from go version output
3- GO_MINOR_VERSION := $(shell go version | cut -d' ' -f3 | cut -d'.' -f2)
42
53EXCLUDE_DIRS := ./examples
64EXCLUDE_GO_MOD_DIRS := $(shell find $(EXCLUDE_DIRS ) -type f -name 'go.mod' -exec dirname {} \; | sort)
75
8- # set build directory based on go minor version
9- GO_BUILD_DIRS := $(foreach dir,$(ALL_GO_MOD_DIRS ) ,$(shell GO_MOD_VERSION=$$(grep "go 1.[0-9]*" $(dir ) /go.mod | cut -d' ' -f2 | cut -d'.' -f2 ) && [ -n "$$GO_MOD_VERSION" ] && [ $(GO_MINOR_VERSION ) -ge $$GO_MOD_VERSION ] && echo $(dir ) ) )
6+ GO_BUILD_DIRS := $(ALL_GO_MOD_DIRS )
107
118PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST ) ) ) )
129BIN_DIR := $(PROJECT_DIR ) /.bin
1310
14- fmt :
15- @$(call run-go-mod-dir,go fmt ./...,"go fmt")
16-
17- gofmt :
18- @$(call run-go-mod-dir,go fmt ./...,"gofmt -s -w")
11+ fmt : golangci-lint
12+ @$(call run-go-mod-dir,$(GOLANGCI_LINT ) fmt,".bin/golangci-lint fmt")
1913
2014vet :
2115 @$(call run-go-mod-dir,go vet ./...,"go vet")
2216
2317lint : golangci-lint
24- @$(call run-go-mod-dir,$(GOLANGCI_LINT ) run --timeout=10m -v,".bin/golangci-lint")
25-
26- .PHONY : ci
27- ci : test test-cov test-xml
18+ $(GOLANGCI_LINT ) run --timeout=10m -v
2819
29- imports : gci
30- @$(call run-go-mod-dir,$(GCI ) -w -local github.com/gojekfarm ./ | { grep -v -e 'skip file .* ' || true; },".bin/gci")
3120
32- .PHONY : gomod. tidy
33- gomod. tidy :
21+ .PHONY : tidy
22+ tidy :
3423 @$(call run-go-mod-dir,go mod tidy,"go mod tidy")
3524
36- .PHONY : go. generate
37- go. generate : mockery protoc
25+ .PHONY : generate
26+ generate : mockery protoc
3827 @$(call run-go-mod-dir,go generate ./...,"go generate")
3928
4029# # test: Run all tests
4130.PHONY : test test-run test-cov test-xml
4231
43- test : check test-run
44-
45- test-run :
32+ test :
4633 @$(call run-go-mod-dir,go test -race -covermode=atomic -coverprofile=coverage.out ./...,"go test")
4734
4835test-cov : gocov
@@ -59,28 +46,14 @@ test-html: test-cov gocov-html
5946 @open coverage.html
6047
6148.PHONY : check
62- check : fmt vet imports lint
49+ check : fmt vet lint
6350 @git diff --quiet || test $$(git diff --name-only | grep -v -e 'go.mod$$' -e 'go.sum$$' | wc -l ) -eq 0 || ( echo " The following changes (result of code generators and code checks) have been detected:" && git --no-pager diff && false ) # fail if Git working tree is dirty
6451
6552# ========= Helpers ===========
6653
67- # # Determine the golangci-lint version based on $(GO_MINOR_VERSION)
68- # ##################
69- GOLANGCI_LINT_V18 := v1.50.1
70- GOLANGCI_LINT_DEFAULT := v1.53.3
71-
72- get-golangci-lint-version = $(or $(value GOLANGCI_LINT_V$(1 ) ) , $(GOLANGCI_LINT_DEFAULT ) )
73- GOLANGCI_LINT_VERSION := $(call get-golangci-lint-version,$(GO_MINOR_VERSION ) )
74-
75- # ##################
76-
7754GOLANGCI_LINT = $(BIN_DIR ) /golangci-lint
7855golangci-lint :
79- $(call go-get-tool,$(GOLANGCI_LINT ) ,github.com/golangci/golangci-lint/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION ) )
80-
81- GCI = $(BIN_DIR ) /gci
82- gci :
83- $(call go-get-tool,$(GCI ) ,github.com/daixiang0/[email protected] ) 56+ $(call go-get-tool,$(GOLANGCI_LINT ) ,github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest)
8457
8558GOCOV = $(BIN_DIR ) /gocov
8659gocov :
0 commit comments