| @@ -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 秒" | |||
| @@ -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 秒" | |||