| @@ -1,54 +1,112 @@ | |||||
| #!/bin/bash | #!/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 | if [ $? -ne 0 ]; then | ||||
| echo "编译失败,请检查代码!" | |||||
| echo "切换到分支 $branch 失败,请检查分支名称是否正确!" | |||||
| exit 1 | exit 1 | ||||
| fi | 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 | if [ $? -ne 0 ]; then | ||||
| echo "编译失败,请检查代码!" | |||||
| echo "拉取代码失败,请检查网络或联系管理员!" | |||||
| exit 1 | exit 1 | ||||
| fi | 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 | 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 | fi | ||||
| sh ${baseDir}/k8s/build_and_deploy_front_managenent.sh | |||||
| # 记录结束时间 | |||||
| end=$(date +%s) | |||||
| #计算运行时间 | |||||
| runtime=$((end-start)) | |||||
| echo "编译成功,耗时:$runtime 秒" | |||||
| @@ -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 秒" | |||||
| @@ -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 | |||||
| @@ -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 秒" | |||||