Browse Source

删除不必要的文件,增加构建和发布脚本

pull/71/head
somunslotus 1 year ago
parent
commit
18ba733c40
5 changed files with 152 additions and 215 deletions
  1. +92
    -34
      k8s/build.sh
  2. +60
    -0
      k8s/build_and_deploy.sh
  3. +0
    -68
      k8s/build_and_deploy_front_managenent.sh
  4. +0
    -0
      k8s/deploy.sh
  5. +0
    -113
      k8s/newbuild.sh

+ 92
- 34
k8s/build.sh View File

@@ -1,54 +1,112 @@
#!/bin/bash

#登录到172.20.32.185 环境执行
baseDir="/home/somuns/ci4s"
cd ${baseDir}
#记录开始时间
start=$(date +%s)

#拉取master分支的最新代码
git pull
if [ $? -ne 0 ]; then
echo "拉取代码失败,请检查网络或联系管理员!"
exit 1
fi
# 默认参数
branch="master"
service="manage-front"
env="dev"

if [ -d "${baseDir}/react-ui/dist" ]; then
rm -rf ${baseDir}/react-ui/dist
fi
#
show_help() {
echo "Usage: $0 [-b branch] [-s service] [-e environment]"
echo
echo "Options:"
echo " -b Branch to deploy"
echo " -s Service to deploy (manage-front, manage, front)"
echo " -e Environment (e.g., dev, prod)"
echo " -h Show this help message"
}

if [ -f "${baseDir}/ruoyi-modules/management-platform/target/management-platform.jar" ];then
rm -rf ${baseDir}/ruoyi-modules/management-platform/target/management-platform.jar
fi
# 解析命令行选项
while getopts "b:s:e:h" opt; do
case $opt in
b) branch=$OPTARG ;;
s) service=$OPTARG ;;
e) env=$OPTARG ;;
h) show_help; exit 0 ;;
\?) echo "Invalid option -$OPTARG" >&2; show_help; exit 1 ;;
esac
done

echo "branch: $branch"
echo "service: $service"
echo "env: $env"

# 编译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/java-build:jdk8-mvn3.6 ${baseDir}/k8s/build-java.sh
# 登录到目标环境
baseDir="/home/somuns/ci4s"
cd ${baseDir}

# 拉取指定分支的最新代码
echo "Checking out and pulling branch $branch..."
git checkout $branch
if [ $? -ne 0 ]; then
echo "编译失败,请检查代码!"
echo "切换到分支 $branch 失败,请检查分支名称是否正确!"
exit 1
fi

# 编译node
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
git pull origin $branch
if [ $? -ne 0 ]; then
echo "编译失败,请检查代码!"
echo "拉取代码失败,请检查网络或联系管理员!"
exit 1
fi

# 创建目录
mkdir -p ${baseDir}/k8s/dockerfiles/jar
mkdir -p ${baseDir}/k8s/dockerfiles/html

mkdir -p ${baseDir}/k8s/dockerfiles/jar
mkdir -p ${baseDir}/k8s/dockerfiles/html
# 复制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
if [ "$service" == "manage-front" ] || [ "$service" == "front" ]; then
# 清理前端构建文件
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
fi

# 复制前端文件
cp -rf ${baseDir}/react-ui/dist/ ${baseDir}/k8s/dockerfiles/html
if [ $? -ne 0 ]; then
echo "复制html文件失败,请检查代码!"
exit 1
if [ "$service" == "manage-front" ] || [ "$service" == "manage" ]; then
# 清理java构建文件
if [ -f "${baseDir}/ruoyi-modules/management-platform/target/management-platform.jar" ]; then
rm -rf ${baseDir}/ruoyi-modules/management-platform/target/management-platform.jar
fi

# 编译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
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
fi

sh ${baseDir}/k8s/build_and_deploy_front_managenent.sh


# 记录结束时间
end=$(date +%s)

#计算运行时间
runtime=$((end-start))
echo "编译成功,耗时:$runtime 秒"

+ 60
- 0
k8s/build_and_deploy.sh View File

@@ -0,0 +1,60 @@
#!/bin/bash

#记录开始时间
startTime=$(date +%s)

# 登录到目标环境
baseDir="/home/somuns/ci4s"
cd ${baseDir}


#build
# 默认参数
branch="master"
service="manage-front"
env="dev"

#
show_help() {
echo "Usage: $0 [-b branch] [-s service] [-e environment]"
echo
echo "Options:"
echo " -b Branch to deploy"
echo " -s Service to deploy (manage-front, manage, front)"
echo " -e Environment (e.g., dev, prod)"
echo " -h Show this help message"
}

# 解析命令行选项
while getopts "b:s:e:h" opt; do
case $opt in
b) branch=$OPTARG ;;
s) service=$OPTARG ;;
e) env=$OPTARG ;;
h) show_help; exit 0 ;;
\?) echo "Invalid option -$OPTARG" >&2; show_help; exit 1 ;;
esac
done

echo "start build"
sh ${baseDir}/k8s/build.sh -b ${branch} -s ${service}
if [ $? -ne 0 ]; then
echo "Build failed"
exit 1
fi
echo "build success"

# 部署
echo "start deploy"
sh ${baseDir}/k8s/deploy.sh -s ${service} -e ${env}
if [ $? -ne 0 ]; then
echo "Deploy failed"
exit 1
fi
echo "deploy success"

# 记录结束时间
endTime=$(date +%s)
# 计算运行时间
duration=$(( $endTime - $startTime ))
echo "编译发布总耗时: $duration 秒"

+ 0
- 68
k8s/build_and_deploy_front_managenent.sh View File

@@ -1,68 +0,0 @@
#!/bin/bash

bastDir=/home/somuns/ci4s
cd ${bastDir}/k8s/dockerfiles
mkdir -p ${bastDir}/k8s/template-yaml/deploy
tag=$(date +'%Y%m%d%H%M')
managent=172.20.32.187/ci4s/managent:${tag}
front=172.20.32.187/ci4s/ci4s-front:${tag}

docker build -t ${managent} -f managent-dockerfile .

if [ "$?" -ne "0" ];then
echo "buid ${managent} image fail"
exit 1
fi

docker build -t ${front} -f nginx-dockerfile .

if [ "$?" -ne "0" ];then
echo "buid ${front} image fail"
exit 2
fi

cd ${bastDir}/k8s/template-yaml

cp -rf k8s-12front.yaml deploy/
cp -rf k8s-7management.yaml deploy/

cd deploy/

#镜像替换
sed -i "s#managenent-image#${managent}#g" k8s-7management.yaml
if [ "$?" -ne "0" ];then
echo "replace ${managent} image fail"
exit 3
fi



sed -i "s#front-image#${front}#g" k8s-12front.yaml

if [ "$?" -ne "0" ];then
echo "replace ${front} image fail"
exit 4
fi


docker push ${managent}
docker push ${front}

kubectl apply -n argo -f k8s-7management.yaml

if [ "$?" -ne "0" ];then
echo "deploy ${managent} image fail"
exit 5
fi


kubectl apply -n argo -f k8s-12front.yaml

if [ "$?" -ne "0" ];then
echo "buid ${front} image fail"
exit 6
fi




k8s/new_deploy.sh → k8s/deploy.sh View File


+ 0
- 113
k8s/newbuild.sh View File

@@ -1,113 +0,0 @@
#!/bin/bash

#记录开始时间
start=$(date +%s)

# 默认参数
branch="master"
service="manage-front"
env="dev"

#
show_help() {
echo "Usage: $0 [-b branch] [-s service] [-e environment]"
echo
echo "Options:"
echo " -b Branch to deploy"
echo " -s Service to deploy (manage-front, manage, front)"
echo " -e Environment (e.g., dev, prod)"
echo " -h Show this help message"
}

# 解析命令行选项
while getopts "b:s:e:h" opt; do
case $opt in
b) branch=$OPTARG ;;
s) service=$OPTARG ;;
e) env=$OPTARG ;;
h) show_help; exit 0 ;;
\?) echo "Invalid option -$OPTARG" >&2; show_help; exit 1 ;;
esac
done

echo "branch: $branch"
echo "service: $service"
echo "env: $env"

# 登录到目标环境
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

if [ "$service" == "manage-front" ] || [ "$service" == "front" ]; then
# 清理前端构建文件
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
fi

if [ "$service" == "manage-front" ] || [ "$service" == "manage" ]; then
# 清理java构建文件
if [ -f "${baseDir}/ruoyi-modules/management-platform/target/management-platform.jar" ]; then
rm -rf ${baseDir}/ruoyi-modules/management-platform/target/management-platform.jar
fi

# 编译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
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
fi


# 构建和部署
sh ${baseDir}/k8s/new_deploy.sh -s $service -e $env
# 记录结束时间
end=$(date +%s)

#计算运行时间
runtime=$((end-start))
echo "编译和发布成功,耗时:$runtime 秒"

Loading…
Cancel
Save