/
Makefile
51 lines (41 loc) · 1.15 KB
/
Makefile
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
# Usage:
# make test # test all modules
# make download # download dependencies
# make release # add git TAG and push
GOPATH := $(shell go env GOPATH)
.PHONY: download, lint, format, test, bench, release
download:
@for d in `find * -name 'go.mod'`; do \
pushd `dirname $$d` >/dev/null; \
rm -f go.sum; \
go mod download; \
popd >/dev/null; \
done
lint:
@${GOPATH}/bin/golangci-lint run ./... --deadline=5m;
@goup -v -m ./...
format:
@gofmt -l -w . ;
# go test -race -v ./... || :
# go test -mod=readonly -v ./...;
test: download
@for d in `find * -name 'go.mod'`; do \
pushd `dirname $$d` >/dev/null; \
go test -v ./...; \
popd >/dev/null; \
done
# go test -mod=readonly -v -run=__absolutelynothing__ -bench=. ./...; \
bench: download
@for d in `find * -name 'go.mod'`; do \
pushd `dirname $$d` >/dev/null; \
go test -run=^a -bench=. ./...; \
popd >/dev/null; \
done
release: download
@if [ -z $(TAG) ]; then \
echo "no TAG. Usage: make release TAG=v0.1.1"; \
else \
for m in `find * -name 'go.mod' -mindepth 1 -exec dirname {} \;`; do \
hub release create -m "$$m/${TAG} release" $$m/${TAG}; \
done \
fi