blob: 6c168f5a1c3ebb6b1a0624564a3e6b02e51ee227 (
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
|
#!/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.01.05-d6ccff5d.tar.gz"
NZ_AGENT_PKG="release/nz-agent/nz-agent-23.01.02.42046f1c-Release.x86_64.rpm"
NZ_GUI_PKG="release/nz-gui/nz-gui-babd0e4d.zip"
NZ_TALON_PKG="release/nz-talon/nz-talon-23.01.01.de3347b3-Release.x86_64.rpm"
# 依赖jdk 文件名
JDK_FILENAME=jdk-8u202-linux-x64.tar.gz
# 拉取依赖文件
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 ./
# 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
# 解压 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 校验依赖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'
|