1
+ .DEFAULT_GOAL = test
2
+ .PHONY : FORCE
1
3
export GO111MODULE = on
2
4
5
+ # Build
6
+
7
+ build : golangci-lint
8
+ clean :
9
+ rm -f golangci-lint test/path
10
+ rm -rf tools
11
+ .PHONY : build clean
12
+
13
+ # Test
14
+
3
15
test : build
4
16
GL_TEST_RUN=1 ./golangci-lint run -v
5
17
GL_TEST_RUN=1 ./golangci-lint run --fast --no-config -v --skip-dirs ' test/testdata_etc,pkg/golinters/goanalysis/(checker|passes)'
@@ -8,35 +20,81 @@ test: build
8
20
9
21
build :
10
22
go build -o golangci-lint ./cmd/golangci-lint
23
+ .PHONY : test
11
24
12
25
test_race :
13
26
go build -race -o golangci-lint ./cmd/golangci-lint
14
27
GL_TEST_RUN=1 ./golangci-lint run -v --deadline=5m
28
+ .PHONY : test_race
15
29
16
30
test_linters :
17
31
GL_TEST_RUN=1 go test -v ./test -count 1 -run TestSourcesFromTestdataWithIssuesDir/$T
32
+ .PHONY : test_linters
18
33
19
- assets :
20
- svg-term --cast=183662 --out docs/demo.svg --window --width 110 --height 30 --from 2000 --to 20000 --profile Dracula --term iterm2
21
-
22
- readme :
23
- go run ./scripts/gen_readme/main.go
34
+ # Maintenance
24
35
25
- gen :
26
- go generate ./...
36
+ generate : docs/demo.svg README.md install.sh pkg/logutils/log_mock.go vendor
37
+ maintainer-clean : clean
38
+ rm -f docs/demo.svg README.md install.sh pkg/logutils/log_mock.go
39
+ rm -rf vendor
40
+ .PHONY : generate maintainer-clean
27
41
28
42
check_generated :
29
- $(MAKE ) readme update_deps
43
+ $(MAKE ) --always-make generate
30
44
git diff --exit-code # check no changes
45
+ .PHONY : check_generated
31
46
32
47
release :
33
48
rm -rf dist
34
49
curl -sL https://git.io/goreleaser | bash
50
+ .PHONY : release
51
+
52
+ # Non-PHONY targets (real files)
53
+
54
+ golangci-lint : FORCE pkg/logutils/log_mock.go
55
+ go build -o $@ ./cmd/golangci-lint
56
+
57
+ tools/mockgen : go.mod go.sum
58
+ GOBIN=$(CURDIR ) /tools go install github.com/golang/mock/mockgen
59
+
60
+ tools/goimports : go.mod go.sum
61
+ GOBIN=$(CURDIR ) /tools go install golang.org/x/tools/cmd/goimports
62
+
63
+ tools/go.mod :
64
+ @mkdir -p tools
65
+ @rm -f $@
66
+ cd tools && go mod init local-tools
35
67
36
- update_deps :
68
+ tools/godownloader : Makefile tools/go.mod
69
+ cd tools && GOBIN=$(CURDIR ) /tools go get github.com/goreleaser/godownloader@3b90d248ba30307915288f08ab3f2fc2d9f6710c
70
+
71
+ tools/svg-term :
72
+ @mkdir -p tools
73
+ cd tools && npm install svg-term-cli
74
+ ln -sf node_modules/.bin/svg-term $@
75
+
76
+ tools/Dracula.itermcolors :
77
+ @mkdir -p tools
78
+ curl -fL -o $@ https://raw.githubusercontent.com/dracula/iterm/master/Dracula.itermcolors
79
+
80
+ docs/demo.svg : tools/svg-term tools/Dracula.itermcolors
81
+ PATH=$(CURDIR ) /tools:$$ {PATH} svg-term --cast=183662 --out docs/demo.svg --window --width 110 --height 30 --from 2000 --to 20000 --profile ./tools/Dracula.itermcolors --term iterm2
82
+
83
+ install.sh : tools/godownloader .goreleaser.yml
84
+ PATH=$(CURDIR ) /tools:$$ {PATH} tools/godownloader .goreleaser.yml | sed ' /DO NOT EDIT/s/ on [0-9TZ:-]*//' > $@
85
+
86
+ README.md : FORCE golangci-lint
87
+ go run ./scripts/gen_readme/main.go
88
+
89
+ pkg/logutils/log_mock.go : tools/mockgen tools/goimports pkg/logutils/log.go
90
+ @rm -f $@
91
+ PATH=$(CURDIR ) /tools:$$ {PATH} go generate ./...
92
+
93
+ go.mod : FORCE
37
94
go mod verify
38
95
go mod tidy
96
+ go.sum : go.mod
97
+
98
+ vendor : go.mod go.sum
39
99
rm -rf vendor
40
100
go mod vendor
41
-
42
- .PHONY : test
0 commit comments