github.com/nakabonne/golangci-lint@v1.26.1/Makefile (about) 1 .DEFAULT_GOAL = test 2 .PHONY: FORCE 3 4 # enable module support across all go commands. 5 export GO111MODULE = on 6 # enable consistent Go 1.12/1.13 GOPROXY behavior. 7 export GOPROXY = https://proxy.golang.org 8 9 # Build 10 11 build: golangci-lint 12 .PHONY: build 13 14 build_race: 15 go build -race -o golangci-lint ./cmd/golangci-lint 16 .PHONY: build_race 17 18 clean: 19 rm -f golangci-lint 20 rm -f test/path 21 rm -f tools/Dracula.itermcolors 22 rm -f tools/godownloader 23 rm -f tools/goreleaser 24 rm -f tools/svg-term 25 rm -rf tools/node_modules 26 .PHONY: clean 27 28 # Test 29 test: export GOLANGCI_LINT_INSTALLED = true 30 test: build 31 GL_TEST_RUN=1 ./golangci-lint run -v 32 GL_TEST_RUN=1 ./golangci-lint run --fast --no-config -v --skip-dirs 'test/testdata_etc,internal/(cache|renameio|robustio)' 33 GL_TEST_RUN=1 ./golangci-lint run --no-config -v --skip-dirs 'test/testdata_etc,internal/(cache|renameio|robustio)' 34 GL_TEST_RUN=1 go test -v ./... 35 .PHONY: test 36 37 test_race: build_race 38 GL_TEST_RUN=1 ./golangci-lint run -v --timeout=5m 39 .PHONY: test_race 40 41 test_linters: 42 GL_TEST_RUN=1 go test -v ./test -count 1 -run TestSourcesFromTestdataWithIssuesDir/$T 43 .PHONY: test_linters 44 45 # Maintenance 46 47 generate: README.md docs/demo.svg install.sh 48 .PHONY: generate 49 50 fast_generate: README.md 51 .PHONY: fast_generate 52 53 maintainer-clean: clean 54 rm -rf docs/demo.svg README.md install.sh 55 .PHONY: maintainer-clean 56 57 check_generated: 58 $(MAKE) --always-make generate 59 git checkout -- go.mod go.sum # can differ between go1.12 and go1.13 60 git diff --exit-code # check no changes 61 .PHONY: check_generated 62 63 fast_check_generated: 64 $(MAKE) --always-make fast_generate 65 git checkout -- go.mod go.sum # can differ between go1.12 and go1.13 66 git diff --exit-code # check no changes 67 .PHONY: fast_check_generated 68 69 release: .goreleaser.yml tools/goreleaser 70 ./tools/goreleaser 71 .PHONY: release 72 73 snapshot: .goreleaser.yml tools/goreleaser 74 ./tools/goreleaser --snapshot --rm-dist 75 .PHONY: snapshot 76 77 # Non-PHONY targets (real files) 78 79 golangci-lint: FORCE 80 go build -o $@ ./cmd/golangci-lint 81 82 tools/godownloader: export GOFLAGS = -mod=readonly 83 tools/godownloader: tools/go.mod tools/go.sum 84 cd tools && go build github.com/goreleaser/godownloader 85 86 tools/goreleaser: export GOFLAGS = -mod=readonly 87 tools/goreleaser: tools/go.mod tools/go.sum 88 cd tools && go build github.com/goreleaser/goreleaser 89 90 tools/svg-term: tools/package.json tools/package-lock.json 91 cd tools && npm ci 92 ln -sf node_modules/.bin/svg-term $@ 93 94 tools/Dracula.itermcolors: 95 curl -fL -o $@ https://raw.githubusercontent.com/dracula/iterm/master/Dracula.itermcolors 96 97 docs/demo.svg: tools/svg-term tools/Dracula.itermcolors 98 ./tools/svg-term --cast=183662 --out docs/demo.svg --window --width 110 --height 30 --from 2000 --to 20000 --profile ./tools/Dracula.itermcolors --term iterm2 99 100 install.sh: .goreleaser.yml tools/godownloader 101 ./tools/godownloader .goreleaser.yml | sed '/DO NOT EDIT/s/ on [0-9TZ:-]*//' > $@ 102 103 README.md: FORCE golangci-lint 104 go run ./scripts/gen_readme/main.go 105 106 go.mod: FORCE 107 go mod tidy 108 go mod verify 109 go.sum: go.mod