-
Notifications
You must be signed in to change notification settings - Fork 16
/
Makefile
88 lines (73 loc) · 2.55 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
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
.PHONY: test ctest covdir coverage docs linter ovs qtest
APP_VERSION:=$(shell cat VERSION | head -1)
GIT_COMMIT:=$(shell git describe --dirty --always)
GIT_BRANCH:=$(shell git rev-parse --abbrev-ref HEAD -- | head -1)
BUILD_USER:=$(shell whoami)
BUILD_DATE:=$(shell date +"%Y-%m-%d")
VERBOSE:=-v
ifdef TEST
TEST:="-run ${TEST}"
endif
all: info
@echo "WARN: please run 'make test'"
info:
@echo "Version: $(APP_VERSION), Branch: $(GIT_BRANCH), Revision: $(GIT_COMMIT)"
@echo "Build on $(BUILD_DATE) by $(BUILD_USER)"
rights:
@sudo chmod o+rw /var/run/openvswitch/db.sock || true
@sudo chmod o+rw /run/ovn/ovnnb_db.sock || true
@sudo chmod o+rw /run/ovn/ovnsb_db.sock || true
linter:
@golint
@echo "PASS: golint"
test: covdir linter rights
@go test $(VERBOSE) -coverprofile=.coverage/coverage.out
ctest: covdir linter rights
@richgo version || go get -u github.com/kyoh86/richgo
@time richgo test $(VERBOSE) "${TEST}" -coverprofile=.coverage/coverage.out
covdir:
@mkdir -p .coverage
coverage:
@go tool cover -html=.coverage/coverage.out -o .coverage/coverage.html
docs:
@mkdir -p .doc
@godoc -html github.com/greenpau/ovsdb > .doc/index.html
@echo "Run to serve docs:"
@echo " godoc -goroot .doc/ -html -http \":5000\""
clean:
@rm -rf .doc
@rm -rf .coverage
dep:
@echo "Making dependencies check ..."
@go install golang.org/x/lint/golint@latest
@go install github.com/kyoh86/richgo@latest
@go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
@go install github.com/greenpau/versioned/cmd/versioned@latest
ovs:
@ovs-vsctl add-br vbr0 || true
@ovs-vsctl add-port vbr0 vport0 || true
@ovs-vsctl add-port vbr0 vport1 || true
@sudo chmod o+rw /var/run/openvswitch/db.sock
qtest:
@#go test -v -run TestListDatabasesMethod
@#go test -v -run TestNewClient
@go test -v -run TestOvsTunnelStringParse
@go test -v -run TestOvsFlowStringParse
license:
@addlicense -c "Paul Greenberg [email protected]" -y 2020 *.go
release: license
@echo "Making release"
@go mod tidy
@go mod verify
@if [ $(GIT_BRANCH) != "main" ]; then echo "cannot release to non-main branch $(GIT_BRANCH)" && false; fi
@git diff-index --quiet HEAD -- || ( echo "git directory is dirty, commit changes first" && git status && false )
@versioned -patch
@echo "Patched version"
@git add VERSION
@git commit -m "released v`cat VERSION | head -1`"
@git tag -a v`cat VERSION | head -1` -m "v`cat VERSION | head -1`"
@git push
@git push --tags
@@echo "If necessary, run the following commands:"
@echo " git push --delete origin v$(APP_VERSION)"
@echo " git tag --delete v$(APP_VERSION)"