forked from goodrain/rainbond
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
129 lines (119 loc) · 5 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
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
GO_LDFLAGS=-ldflags " -w"
VERSION=3.4
WORK_DIR=/go/src/github.com/goodrain/rainbond
BASE_NAME=rainbond
BASE_DOCKER=./hack/contrib/docker
BIN_PATH=./_output/${VERSION}
default: help
all: build pkgs images ## build linux binaries, build linux packages, build images for docker
clean:
@rm -rf ${BIN_PATH}/*
build: build-mq build-worker build-chaos build-mqcli build-node build-entrance build-eventlog build-webcli build-grctl build-api ## build all binaries
build-mq:
go build ${GO_LDFLAGS} -o ${BIN_PATH}/${BASE_NAME}-mq ./cmd/mq
build-worker:
go build ${GO_LDFLAGS} -o ${BIN_PATH}/${BASE_NAME}-worker ./cmd/worker
build-chaos:
go build ${GO_LDFLAGS} -o ${BIN_PATH}/${BASE_NAME}-chaos ./cmd/builder
build-mqcli:
go build ${GO_LDFLAGS} -o ${BIN_PATH}/${BASE_NAME}-mqcli ./cmd/mqcli
build-node:
go build ${GO_LDFLAGS} -o ${BIN_PATH}/${BASE_NAME}-node ./cmd/node
build-entrance:
go build ${GO_LDFLAGS} -o ${BIN_PATH}/${BASE_NAME}-entrance ./cmd/entrance
build-eventlog:
go build ${GO_LDFLAGS} -o .${BIN_PATH}/${BASE_NAME}-eventlog ./cmd/eventlog
build-grctl:
go build ${GO_LDFLAGS} -o ${BIN_PATH}/${BASE_NAME}-grctl ./cmd/grctl
build-api:
go build ${GO_LDFLAGS} -o ${BIN_PATH}/${BASE_NAME}-api ./cmd/api
build-webcli:
go build ${GO_LDFLAGS} -o ${BIN_PATH}/${BASE_NAME}-webcli ./cmd/webcli
deb: ## build the deb packages
@bash ./release.sh deb
rpm: ## build the rpm packages
@bash ./release.sh rpm
pkgs:
@bash ./release.sh pkg
images: build-image-worker build-image-mq build-image-chaos build-image-entrance build-image-eventlog build-image-api build-image-webcli ## build all images
build-image-worker:
@echo "🐳 $@"
@bash ./release.sh worker
build-image-mq:
@echo "🐳 $@"
@bash ./release.sh mq
build-image-chaos:
@echo "🐳 $@"
@bash ./release.sh chaos
build-image-node:
@echo "🐳 $@"
@bash ./release.sh node
# @docker run -v `pwd`:${WORK_DIR} -w ${WORK_DIR} -it golang:1.8.3 go build ${GO_LDFLAGS} -o ${BASE_DOCKER}/node/${BASE_NAME}-node ./cmd/node
build-image-entrance:
@echo "🐳 $@"
@cp -r ${BASE_DOCKER}/dist ${BASE_DOCKER}/entrance/dist
@bash ./release.sh entrance
@rm -rf ${BASE_DOCKER}/entrance/dist
build-image-eventlog:
@echo "🐳 $@"
@bash ./release.sh eventlog
build-image-api:
@echo "🐳 $@"
@bash ./release.sh api
build-image-webcli:
@echo "🐳 $@"
@bash ./release.sh webcli
push-gr-image:
@docker push hub.goodrain.com/${BASE_NAME}/rbd-eventlog:${VERSION}
@docker push hub.goodrain.com/${BASE_NAME}/rbd-entrance:${VERSION}
@docker push hub.goodrain.com/${BASE_NAME}/rbd-chaos:${VERSION}
@docker push hub.goodrain.com/${BASE_NAME}/rbd-mq:${VERSION}
@docker push hub.goodrain.com/${BASE_NAME}/rbd-worker:${VERSION}
@docker push hub.goodrain.com/${BASE_NAME}/rbd-webcli:${VERSION}
@docker push hub.goodrain.com/${BASE_NAME}/rbd-api:${VERSION}
push-hub-image:
@docker push ${BASE_NAME}/rbd-eventlog:${VERSION}
@docker push ${BASE_NAME}/rbd-entrance:${VERSION}
@docker push ${BASE_NAME}/rbd-chaos:${VERSION}
@docker push ${BASE_NAME}/rbd-mq:${VERSION}
@docker push ${BASE_NAME}/rbd-worker:${VERSION}
@docker push ${BASE_NAME}/rbd-webcli:${VERSION}
@docker push ${BASE_NAME}/rbd-api:${VERSION}
run-api:build-api
${BIN_PATH}/${BASE_NAME}-api --log-level=debug --mysql="admin:admin@tcp(127.0.0.1:3306)/region" --kube-config="`PWD`/admin.kubeconfig"
run-mq:build-mq
${BIN_PATH}/${BASE_NAME}-mq --log-level=debug
run-worker:build-worker
CUR_NET=midonet EX_DOMAIN=test-ali.goodrain.net:10080 ${BIN_PATH}/${BASE_NAME}-worker \
--log-level=debug \
--db-type=cockroachdb \
--mysql="postgresql://root@localhost:26257/region" \
--kube-config=./admin.kubeconfig
run-chaos:build-chaos
${BIN_PATH}/${BASE_NAME}-chaos
run-eventlog:build-eventlog
${BIN_PATH}/${BASE_NAME}-eventlog \
--log.level=debug --discover.etcd.addr=http://127.0.0.1:2379 \
--db.url="root:admin@tcp(127.0.0.1:3306)/event" \
--dockerlog.mode=stream \
--message.dockerlog.handle.core.number=2 \
--message.garbage.file="/tmp/garbage.log" \
--docker.log.homepath="/Users/qingguo/tmp"
run-node:build-node
${BIN_PATH}/${BASE_NAME}-node \
--run-mode=master --kube-conf=`pwd`/test/admin.kubeconfig \
--nodeid-file=`pwd`/test/host_id.conf \
--static-task-path=`pwd`/test/tasks \
--log-level=debug
doc: ## build the docs
@cd cmd/api && swagger generate spec -o ../../hack/contrib/docker/api/html/swagger.json
help: ## this help
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
@echo "\033[32m ❗❗❗ eventlog,entrance,chaos,mq,worker,webcli,api not support deb/rpm \033[0m"
@echo "\033[32m ❗❗❗ node,grctl not support image \033[0m"
@echo "\033[32m plugin: node,grctl,eventlog,entrance,chaos,mq,worker,webcli,api \033[0m"
@echo "\033[32m \033[0m"
@echo "\033[36m 🤔 single plugin,how to work? \033[0m"
@echo "\033[01;34mmake build-<plugin>\033[0m Just like: make build-mq"
@echo "\033[01;34mmake build-image-<plugin>\033[0m Just like: make build-image-mq"
@echo "\033[01;34mmake run-<plugin>\033[0m Just like: make run-mq"