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