-
Notifications
You must be signed in to change notification settings - Fork 225
/
Copy pathTaskfile.yml
130 lines (113 loc) · 2.88 KB
/
Taskfile.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# https://taskfile.dev/
version: 3
vars:
PROJECT: flipt
SOURCE_FILES: ./...
tasks:
default:
desc: Build the binary
cmds:
- task: clean
- task: proto
- task: assets
- go build -trimpath -tags assets -ldflags "-X main.commit={{.GIT_COMMIT}}" -o ./bin/{{.PROJECT}} ./cmd/{{.PROJECT}}/.
vars:
GIT_COMMIT:
sh: set -e && git rev-parse --verify HEAD || ""
assets:
desc: Build the UI
deps: [assets:deps]
cmds:
- cd ui && yarn build
vars:
NODE_OPTIONS: --openssl-legacy-provider
sources:
- ./ui/static/*
- ./ui/src/**/*
- ./ui/src/**/**/*
- ./ui/index.html
- ./ui/package.json
method: checksum
assets:deps:
desc: Install UI dependencies
cmds:
- cd ui && yarn --frozen-lockfile
bench:
desc: Run benchmarks
cmds:
- go test -bench={{.BENCH_PATTERN}} {{.SOURCE_FILES}} -run=XXX {{.TEST_FLAGS}}
vars:
BENCH_PATTERN: .
TEST_FLAGS: -v
bootstrap:
desc: Install necessary development tools
cmds:
- ./script/bootstrap
build:
desc: Run Go build
cmds:
- go build -trimpath -tags assets -ldflags "-X main.commit={{.GIT_COMMIT}}" -o ./bin/{{.PROJECT}} ./cmd/{{.PROJECT}}/.
vars:
GIT_COMMIT:
sh: set -e && git rev-parse --verify HEAD || ""
build:clients:
desc: Generate Ruby and Go proto clients
deps: [proto]
cmds:
- buf generate --template=buf.public.gen.yaml
build:release:
desc: Build a release version and push the release with goreleaser
cmds:
- task: clean
- task: proto
- task: assets
- ./script/build release
build:snapshot:
desc: Build a snapshot version with goreleaser
cmds:
- task: clean
- task: proto
- task: assets
- ./script/build snapshot
proto:
desc: Generate protobuf files from .protos
cmds:
- buf generate
clean:
desc: Remove built assets
cmds:
- go mod tidy
- go clean -i {{.SOURCE_FILES}}
- rm -rf dist/*
cover:
desc: Run test coverage
deps: [test]
cmds:
- go tool cover -html={{.COVERAGE_FILE}}
vars:
COVERAGE_FILE: coverage.txt
dev:
desc: Start the server and UI in development modes
cmds:
- modd
preconditions:
- sh: "! [ -x '$(command -v modd)' ]"
msg: "modd not found. run bootstrap."
fmt:
desc: Run goimports
cmds:
- goimports -w $(go list -f {{`{{.Dir}}`}} ./... | grep -v /rpc/)
lint:
desc: Run the linters
cmds:
- golangci-lint run 2>&1
- buf lint
test:
desc: Run all the tests
cmds:
- go test {{.TEST_OPTS}} -covermode=atomic -count=1 -coverprofile={{.COVERAGE_FILE}} {{.SOURCE_FILES}} -run={{.TEST_PATTERN}} -timeout=30s {{.TEST_FLAGS}}
vars:
COVERAGE_FILE: coverage.txt
TEST_PATTERN: .
TEST_FLAGS: -v
TEST_OPTS: -race