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,82 @@ 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
35
51
36
52
update_deps :
37
53
go mod verify
38
54
go mod tidy
39
- rm -rf vendor
40
- go mod vendor
55
+ $( MAKE ) vendor
56
+ .PHONY : update_deps
41
57
42
- .PHONY : test
58
+ # Non-PHONY targets (real files)
59
+
60
+ golangci-lint : FORCE pkg/logutils/log_mock.go
61
+ go build -o $@ ./cmd/golangci-lint
62
+
63
+ tools/mockgen : go.mod go.sum
64
+ GOBIN=$(CURDIR ) /tools go install github.com/golang/mock/mockgen
65
+
66
+ tools/goimports : go.mod go.sum
67
+ GOBIN=$(CURDIR ) /tools go install golang.org/x/tools/cmd/goimports
68
+
69
+ tools/go.mod :
70
+ @mkdir -p tools
71
+ @rm -f $@
72
+ cd tools && go mod init local-tools
73
+
74
+ tools/godownloader : Makefile tools/go.mod
75
+ cd tools && GOBIN=$(CURDIR ) /tools go get github.com/goreleaser/godownloader@3b90d248ba30307915288f08ab3f2fc2d9f6710c
76
+
77
+ tools/svg-term :
78
+ @mkdir -p tools
79
+ cd tools && npm install svg-term-cli
80
+ ln -sf node_modules/.bin/svg-term $@
81
+
82
+ tools/Dracula.itermcolors :
83
+ @mkdir -p tools
84
+ curl -fL -o $@ https://raw.githubusercontent.com/dracula/iterm/master/Dracula.itermcolors
85
+
86
+ docs/demo.svg : tools/svg-term tools/Dracula.itermcolors
87
+ 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
88
+
89
+ install.sh : tools/godownloader .goreleaser.yml
90
+ PATH=$(CURDIR ) /tools:$$ {PATH} tools/godownloader .goreleaser.yml | sed ' /DO NOT EDIT/s/ on [0-9TZ:-]*//' > $@
91
+
92
+ README.md : FORCE golangci-lint
93
+ go run ./scripts/gen_readme/main.go
94
+
95
+ pkg/logutils/log_mock.go : tools/mockgen tools/goimports pkg/logutils/log.go
96
+ @rm -f $@
97
+ PATH=$(CURDIR ) /tools:$$ {PATH} go generate ./...
98
+
99
+ vendor : go.mod go.sum
100
+ @rm -rf vendor
101
+ go mod vendor
0 commit comments