142 lines
3.5 KiB
Bash
Executable File
142 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
#记录开始时间
|
||
start=$(date +%s)
|
||
|
||
# 默认参数
|
||
branch="master"
|
||
service="manage-front"
|
||
|
||
|
||
show_help() {
|
||
echo "Usage: $0 [-b branch] [-s service]"
|
||
echo
|
||
echo "Options:"
|
||
echo " -b Branch to deploy, default is master"
|
||
echo " -s Service to deploy (manage-front, manage, front, all, default is manage-front)"
|
||
echo " -h Show this help message"
|
||
}
|
||
|
||
# 解析命令行选项
|
||
while getopts "b:s:h" opt; do
|
||
case $opt in
|
||
b) branch=$OPTARG ;;
|
||
s) service=$OPTARG ;;
|
||
h) show_help; exit 0 ;;
|
||
\?) echo "Invalid option -$OPTARG" >&2; show_help; exit 1 ;;
|
||
esac
|
||
done
|
||
|
||
echo "branch: $branch"
|
||
echo "service: $service"
|
||
|
||
valid_services=("manage-front" "manage" "front" "all" "auth" "gateway" "system")
|
||
if [[ ! " ${valid_services[@]} " =~ " $service " ]]; then
|
||
echo "Invalid service name: $service" >&2
|
||
echo "Valid services are: ${valid_services[*]}"
|
||
exit 1
|
||
fi
|
||
|
||
# 登录到目标环境
|
||
baseDir="/home/somuns/ci4s"
|
||
cd ${baseDir}
|
||
|
||
# 创建目录
|
||
mkdir -p ${baseDir}/k8s/dockerfiles/jar
|
||
mkdir -p ${baseDir}/k8s/dockerfiles/html
|
||
|
||
compile_front() {
|
||
# 清理前端构建文件
|
||
if [ -d "${baseDir}/react-ui/dist" ]; then
|
||
rm -rf ${baseDir}/react-ui/dist
|
||
fi
|
||
|
||
# 编译前端
|
||
docker run -v ${baseDir}:${baseDir} \
|
||
-e http_proxy=http://172.20.32.253:3128 -e https_proxy=http://172.20.32.253:3128 \
|
||
172.20.32.187/ci4s/node:16.16.0 ${baseDir}/k8s/build-node.sh
|
||
if [ $? -ne 0 ]; then
|
||
echo "编译失败,请检查代码!"
|
||
exit 1
|
||
fi
|
||
|
||
# 复制前端文件
|
||
cp -rf ${baseDir}/react-ui/dist/ ${baseDir}/k8s/dockerfiles/html
|
||
if [ $? -ne 0 ]; then
|
||
echo "复制html文件失败,请检查代码!"
|
||
exit 1
|
||
fi
|
||
}
|
||
|
||
compile_java() {
|
||
param=$1
|
||
# 编译java
|
||
docker run -v ${baseDir}:${baseDir} -v /home/maven:/home/maven \
|
||
-e http_proxy=http://172.20.32.253:3128 -e https_proxy=http://172.20.32.253:3128 \
|
||
172.20.32.187/ci4s/build:v3 ${baseDir}/k8s/build-java.sh $param
|
||
if [ $? -ne 0 ]; then
|
||
echo "编译失败,请检查代码!"
|
||
exit 1
|
||
fi
|
||
|
||
# 复制jar包
|
||
cp -rf ${baseDir}/ruoyi-modules/management-platform/target/management-platform.jar ${baseDir}/k8s/dockerfiles/jar/management-platform.jar
|
||
if [ $? -ne 0 ]; then
|
||
echo "复制jar包失败,请检查代码!"
|
||
exit 1
|
||
fi
|
||
|
||
if [ "$param" == "all" ]; then
|
||
cp -rf ${baseDir}/ruoyi-modules/ruoyi-system/target/ruoyi-modules-system.jar ${baseDir}/k8s/dockerfiles/jar/ruoyi-modules-system.jar
|
||
if [ $? -ne 0 ]; then
|
||
echo "复制jar包失败,请检查代码!"
|
||
exit 1
|
||
fi
|
||
|
||
cp -rf ${baseDir}/ruoyi-auth/target/ruoyi-auth.jar ${baseDir}/k8s/dockerfiles/jar/ruoyi-auth.jar
|
||
if [ $? -ne 0 ]; then
|
||
echo "复制jar包失败,请检查代码!"
|
||
exit 1
|
||
fi
|
||
|
||
cp -rf ${baseDir}/ruoyi-gateway/target/ruoyi-gateway.jar ${baseDir}/k8s/dockerfiles/jar/ruoyi-gateway.jar
|
||
if [ $? -ne 0 ]; then
|
||
echo "复制jar包失败,请检查代码!"
|
||
exit 1
|
||
fi
|
||
fi
|
||
}
|
||
|
||
if [ "$service" == "front" ]; then
|
||
# 编译前端
|
||
compile_front
|
||
fi
|
||
|
||
if [ "$service" == "manage-front" ]; then
|
||
# 编译前端
|
||
compile_front
|
||
# 编译java
|
||
compile_java "manage"
|
||
fi
|
||
|
||
if [ "$service" != "manage-front" ] && [ "$service" != "all" ] && [ "$service" != "front" ]; then
|
||
# 编译java
|
||
compile_java $service
|
||
fi
|
||
|
||
if [ "$service" == "all" ]; then
|
||
# 编译前端
|
||
compile_front
|
||
|
||
# 编译java
|
||
compile_java "all"
|
||
fi
|
||
|
||
|
||
# 记录结束时间
|
||
end=$(date +%s)
|
||
|
||
#计算运行时间
|
||
runtime=$((end-start))
|
||
echo "编译成功,耗时:$runtime 秒"
|