-
Notifications
You must be signed in to change notification settings - Fork 46
Expand file tree
/
Copy pathMakefile
More file actions
136 lines (112 loc) · 4.6 KB
/
Copy pathMakefile
File metadata and controls
136 lines (112 loc) · 4.6 KB
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
131
132
133
134
135
136
# version
PRO_DIR = $(shell pwd)
BUILDTIME = $(shell date +%Y-%m-%dT%T%z)
VERSION = $(ENV_BK_HCM_VERSION)
DEBUG = $(ENV_BK_HCM_ENABLE_DEBUG)
MOCK = $(ENV_BK_HCM_ENABLE_MOCK)
# 通过tags控制是否编译出mock的服务,目前只有hc-service用到了GOTAGS参数
ifneq ($(MOCK),)
export GOTAGS=-tags mock
endif
# output directory for release package and version for command line
ifeq ("$(VERSION)", "")
export OUTPUT_DIR = ${PRO_DIR}/build/bk-hcm
export LDVersionFLAG = "-X hcm/pkg/version.BUILDTIME=${BUILDTIME} \
-X hcm/pkg/version.DEBUG=${DEBUG}"
else
GITHASH = $(shell git rev-parse HEAD)
export OUTPUT_DIR = ${PRO_DIR}/build/bk-hcm-${VERSION}
export LDVersionFLAG = "-X hcm/pkg/version.VERSION=${VERSION} \
-X hcm/pkg/version.BUILDTIME=${BUILDTIME} \
-X hcm/pkg/version.GITHASH=${GITHASH} \
-X hcm/pkg/version.DEBUG=${DEBUG}"
endif
export GO111MODULE=on
include ./scripts/makefile/uname.mk
default: all
# 创建编译文件存储目录
pre:
@echo -e "\033[34;1mBuilding...\n\033[0m"
mkdir -p ${OUTPUT_DIR}
# 本地测试前后端编译
all: pre ui server suite
@echo -e "\033[32;1mBuild All Success!\n\033[0m"
# 后端本地测试编译
server: pre changelog template
@cd ${PRO_DIR}/cmd && make
@echo -e "\033[32;1mBuild Server Success!\n\033[0m"
# 二进制出包编译
package: pre ui api ver changelog template
@echo -e "\033[34;1mPackaging...\n\033[0m"
@mkdir -p ${OUTPUT_DIR}/bin
@mkdir -p ${OUTPUT_DIR}/etc
@mkdir -p ${OUTPUT_DIR}/install
@mkdir -p ${OUTPUT_DIR}/install/sql
@cp -f ${PRO_DIR}/scripts/install/migrate.sh ${OUTPUT_DIR}/install/
@cp -rf ${PRO_DIR}/scripts/sql/* ${OUTPUT_DIR}/install/sql/
@cd ${PRO_DIR}/cmd && make package
@echo -e "\033[32;1mPackage All Success!\n\033[0m"
# 容器化编译
docker: pre ui ver changelog template api
@echo -e "\033[34;1mMake Dockering...\n\033[0m"
@cp -rf ${PRO_DIR}/docs/support-file/docker/* ${OUTPUT_DIR}/
@mv ${OUTPUT_DIR}/front ${OUTPUT_DIR}/bk-hcm-webserver/
@mv ${OUTPUT_DIR}/changelog ${OUTPUT_DIR}/bk-hcm-webserver/
@mv ${OUTPUT_DIR}/template ${OUTPUT_DIR}/bk-hcm-webserver/
@cp -rf ${PRO_DIR}/scripts/sql ${OUTPUT_DIR}/bk-hcm-dataservice/
@cd ${PRO_DIR}/cmd && make docker
@echo -e "\033[32;1mMake Docker All Success!\n\033[0m"
# 只对后端进行容器化编译
docker_server: pre ver changelog template api
@echo -e "\033[34;1mMake Dockering...\n\033[0m"
@mkdir ${OUTPUT_DIR}/front
@cp -rf ${PRO_DIR}/docs/support-file/docker/* ${OUTPUT_DIR}/
@mv ${OUTPUT_DIR}/front ${OUTPUT_DIR}/bk-hcm-webserver/
@mv ${OUTPUT_DIR}/changelog ${OUTPUT_DIR}/bk-hcm-webserver/
@mv ${OUTPUT_DIR}/template ${OUTPUT_DIR}/bk-hcm-webserver/
@cp -rf ${PRO_DIR}/scripts/sql ${OUTPUT_DIR}/bk-hcm-dataservice/
@cd ${PRO_DIR}/cmd && make docker
@echo -e "\033[32;1mMake Docker All Success!\n\033[0m"
# 编译前端
ui: pre
@echo -e "\033[34;1mBuilding Front...\033[0m"
@cd ${PRO_DIR}/front && npm i && npm run build
@mv ${PRO_DIR}/front/dist ${OUTPUT_DIR}/front
@echo -e "\033[32;1mBuild Front Success!\n\033[0m"
# 添加版本日志到编译文件中
changelog: pre
@cp -rf ${PRO_DIR}/docs/support-file/changelog ${OUTPUT_DIR}/
@echo -e "\033[32;1mPackaging ChangeLog Success!\n\033[0m"
# 添加模板文件到编译文件中
template: pre
@cp -rf ${PRO_DIR}/docs/support-file/template ${OUTPUT_DIR}/
@echo -e "\033[32;1mPackaging Template Success!\n\033[0m"
# 添加Api文档到编译文件中
api: pre
@echo -e "\033[34;1mPackaging API Docs...\033[0m"
@mkdir -p ${OUTPUT_DIR}/bk-hcm-apigwregister/support-files/apidocs/
@cp -f docs/api-docs/api-server/api/bk_apigw_resources_bk-hcm.yaml ${OUTPUT_DIR}/bk-hcm-apigwregister/support-files/resources.yaml
@cp -f docs/api-docs/api-server/api/bk_apigw_definition_bk-hcm.yaml ${OUTPUT_DIR}/bk-hcm-apigwregister/support-files/definition.yaml
@cp -rf docs/api-docs/api-server/docs/zh ${OUTPUT_DIR}/bk-hcm-apigwregister/support-files/apidocs
@cp -rf docs/api-docs/api-server/bin ${OUTPUT_DIR}/bk-hcm-apigwregister/support-files/
@echo -e "\033[32;1mPackaging API Docs Done\n\033[0m"
# 添加版本信息到编译文件中
ver: pre
@echo ${VERSION} > ${OUTPUT_DIR}/VERSION
@cp -rf ${PRO_DIR}/CHANGELOG.md ${OUTPUT_DIR}
suite: pre
@make -C ${PRO_DIR}/test/suite
@cp -rf ${PRO_DIR}/test/suite/suite-test ${OUTPUT_DIR}/
@rm -rf ${PRO_DIR}/test/suite/suite-test
mockgen:
make -C ${PRO_DIR}/pkg/adaptor/mock mockgen
# 初始化下载项目开发依赖工具
init-tools:
# 前端代码检查依赖工具下载
curl -o- -L https://yarnpkg.com/install.sh | bash
# 下载gomock
make -C ${PRO_DIR}/pkg/adaptor/mock init-tools
# 清理编译文件
clean:
@make -C ${PRO_DIR}/cmd clean
@rm -rf ${PRO_DIR}/build