ci4sManagement-cloud/k8s/build.sh

150 lines
3.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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")
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}
# 拉取指定分支的最新代码
echo "Checking out and pulling branch $branch..."
git checkout $branch
if [ $? -ne 0 ]; then
echo "切换到分支 $branch 失败,请检查分支名称是否正确!"
exit 1
fi
git pull origin $branch
if [ $? -ne 0 ]; then
echo "拉取代码失败,请检查网络或联系管理员!"
exit 1
fi
# 创建目录
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:v1 ${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" == "manage-front" ] || [ "$service" == "front" ]; then
# 编译前端
compile_front
fi
if [ "$service" == "manage-front" ] || [ "$service" == "manage" ]; 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"