blob: 39be0160e10a73600142bb524bbccfabb6b26987 (
plain)
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
|
#!/bin/bash
set -evx
CUR_PWD=`pwd`
PACKAGE_NAME=nz
BRANCH_ARRAY=(${CI_COMMIT_REF_NAME//-/ })
PACKAGE_VERSION=${BRANCH_ARRAY[1]}.$CI_COMMIT_SHORT_SHA
ITERATION=Beta
if [[ "${BRANCH_ARRAY[0]}" == "rel" ]] ; then
ITERATION='Release';
fi
RPM_FULL_NAME=${PACKAGE_NAME}-${PACKAGE_VERSION}-${ITERATION}.x86_64.rpm
# 初始化 minio
mc alias set nz $MINIO_HOST $MINIO_USER $MINIO_PWD
#各个依赖包版本
NZ_WEB_PKG="release/nz-web/nz-web-rel-23.10.08-b42c0906.tar.gz"
NZ_AGENT_PKG="release/nz-agent/nz-agent-23.10.02.c491be76-Release.x86_64.rpm"
NZ_GUI_PKG="release/nz-gui/nz-gui-ac512bc0.zip"
NZ_TALON_PKG="release/nz-talon/nz-talon-23.10.02.4bd4109f-Release.x86_64.rpm"
# 依赖jdk 文件名
JDK_FILENAME=openjdk-21_linux-x64_bin.tar.gz
CHROME_FILENAME=chrome-117.0.5938.149-linux64.zip
CHROMEDRIVER_FILENAME=chromedriver-117.0.5938.149-linux64.zip
# 拉取依赖文件
mc cp nz/$NZ_WEB_PKG ./
mc cp nz/$NZ_AGENT_PKG ./
mc cp nz/$NZ_GUI_PKG ./
mc cp nz/$NZ_TALON_PKG ./
mc cp nz/depends/exporter/generator-0.21.0.linux-amd64.zip ./
mc cp nz/depends/prometheus/promtool ./
mc cp nz/depends/map/Tiles.zip ./
mc cp nz/depends/jdk/$JDK_FILENAME ./
mc cp nz/depends/chrome/$CHROME_FILENAME ./
mc cp nz/depends/chrome/$CHROMEDRIVER_FILENAME ./
# rpm 编译目录
BUILD_PATH=$CUR_PWD/build
RPM_NZ_PATH=$BUILD_PATH/opt/nezha/nz-web
RPM_JDK_PATH=$RPM_NZ_PATH/jdk
mkdir -p $BUILD_PATH $RPM_NZ_PATH $RPM_NZ_PATH/bin $RPM_NZ_PATH/install $RPM_NZ_PATH/config $RPM_NZ_PATH/generator $RPM_NZ_PATH/promtool $RPM_NZ_PATH/public $RPM_NZ_PATH/lib
mkdir -p $RPM_JDK_PATH
echo 'packaging begin ...'
# 解压jdk
tar -xzf ./$JDK_FILENAME --strip-components 1 -C $RPM_JDK_PATH
# 解压 chrome&chromedriver 依赖
unzip -oq ./$CHROME_FILENAME -d $RPM_NZ_PATH/lib
unzip -oqj ./$CHROMEDRIVER_FILENAME -d $RPM_NZ_PATH/lib
# 解压 nz-web.tar.gz
tar -zxvf nz-web-*.tar.gz -C $RPM_NZ_PATH
# 解压 nz-gui.zip
unzip -o nz-gui-*.zip -d $RPM_NZ_PATH/public
# 解压 map/Tiles.zip 默认 1-7 级
unzip -o -q Tiles.zip -d $RPM_NZ_PATH/public/static
# 移动nz.rpm
mv nz-*.rpm $RPM_NZ_PATH/install
cp ./tools/install-agent.sh.template $RPM_NZ_PATH/install
cp ./tools/install-talon.sh.template $RPM_NZ_PATH/install
# license&acc 校验依赖so
cp ./tools/lib*.so $RPM_NZ_PATH/lib
# 移动依赖工具
mv promtool $RPM_NZ_PATH/promtool/
unzip -o generator-0.21.0.linux-amd64.zip -d $RPM_NZ_PATH/generator/
# 配置文件
cp ./tools/nezha.properties $RPM_NZ_PATH/config
cp ./tools/logback-spring.xml $RPM_NZ_PATH/config
# 设置可执行权限
chmod +x $RPM_NZ_PATH/xjar
chmod +x $RPM_NZ_PATH/promtool/promtool
chmod +x $RPM_NZ_PATH/generator/generator
fpm -s dir -t rpm -n ${PACKAGE_NAME} -v ${PACKAGE_VERSION} --iteration ${ITERATION} --rpm-os 'linux' \
--pre-install ./tools/beforeinstall.sh \
--post-install ./tools/afterinstall.sh \
--post-uninstall ./tools/afterremove.sh \
-C $BUILD_PATH -f \
-p $BUILD_PATH
# 计算md5值
cd $BUILD_PATH && md5sum $RPM_FULL_NAME > $RPM_FULL_NAME.md5sum.txt
cd $CUR_PWD
# 上传编译的rpm 文件
mc cp $BUILD_PATH/$RPM_FULL_NAME nz/release/$PACKAGE_NAME/$RPM_FULL_NAME
mc cp $BUILD_PATH/$RPM_FULL_NAME.md5sum.txt nz/release/$PACKAGE_NAME/$RPM_FULL_NAME.md5sum.txt
echo 'package finished'
|