فهرست منبع

refactor(deploy): 重构部署脚本并添加日志记录功能

- 重构了部署脚本的结构,提高了代码的可读性和可维护性
- 添加了日志记录功能,方便跟踪部署过程
- 优化了版本号修改的逻辑,支持自动递增和手动输入
- 将编译、构建和推送镜像的步骤分离成独立的函数,便于调用和维护
chen.cheng 9 ماه پیش
والد
کامیت
5cb97b7e58
1فایلهای تغییر یافته به همراه56 افزوده شده و 60 حذف شده
  1. 56 60
      ruoyi-ui/deploy.sh

+ 56 - 60
ruoyi-ui/deploy.sh

@@ -3,8 +3,14 @@
 # 设置变量
 PROJECT_NAME="bd-app"
 DOCKER_IMAGE_NAME="bd-app"
-REMOTE_REGISTRY="docker.xt.wenhq.top:8083/bd"
+REMOTE_REGISTRY=${REMOTE_REGISTRY:-"docker.xt.wenhq.top:8083/bd"}
 VERSION_FILE="version"
+LOG_FILE="deploy.log"
+
+# 日志函数
+log() {
+  echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a $LOG_FILE
+}
 
 # 读取当前版本号
 CURRENT_VERSION=$(cat $VERSION_FILE)
@@ -17,92 +23,82 @@ CURRENT_MAJOR=$(echo $CURRENT_VERSION | cut -d'.' -f1)
 CURRENT_MINOR=$(echo $CURRENT_VERSION | cut -d'.' -f2)
 
 # 用户选择是否修改大版本号
-read -p "是否修改大版本号?(y/n): " modify_major_version
+read -p "是否修改大版本号?(a/i/ne): " modify_major_version
 
-if [ "$modify_major_version" == "y" ]; then
-  read -p "请输入新的大版本号: " new_major_version
-  CURRENT_MAJOR=$new_major_version
+if [ "$modify_major_version" == "a" ]; then
+  CURRENT_MAJOR=$((CURRENT_MAJOR + 1))
   CURRENT_MINOR=0  # 重置小版本号
-else
+elif [ "$modify_major_version" == "i" ]; then
   CURRENT_MINOR=$((CURRENT_MINOR + 1))  # 增加小版本号
+else
+  echo "跳过版本号修改"
 fi
 
 # 更新版本号
 NEXT_VERSION="${CURRENT_MAJOR}.${CURRENT_MINOR}"
 echo $NEXT_VERSION > $VERSION_FILE
-
+echo "版本号:" $NEXT_VERSION
 # 用户选择执行的步骤
 echo "请选择要执行的步骤(输入数字):"
-echo "1. 编译Vue项目"
+echo "1. 编译bd-app项目"
 echo "2. 构建Docker镜像"
 echo "3. 推送Docker镜像到远程仓库"
 echo "4. 执行所有步骤"
 read -p "请输入选项(1/2/3/4): " choice
 
+# 编译项目
+compile_project() {
+  log "开始编译bd-app项目..."
+  yarn run build:prod
+  if [ $? -ne 0 ]; then
+    log "bd-app项目编译失败。退出脚本。"
+    exit 1
+  fi
+  log "bd-app项目编译完成"
+}
+
+# 构建Docker镜像
+build_docker_image() {
+  log "开始构建Docker镜像..."
+  docker build -t ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION} .
+  if [ $? -ne 0 ]; then
+    log "Docker镜像构建失败。退出脚本。"
+    exit 1
+  fi
+  log "Docker镜像构建完成"
+}
+
+# 推送Docker镜像到远程仓库
+push_docker_image() {
+  log "开始推送Docker镜像到远程仓库..."
+  docker push ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION}
+  if [ $? -ne 0 ]; then
+    log "Docker镜像推送失败。退出脚本。"
+    exit 1
+  fi
+  log "Docker镜像推送完成"
+}
+
 # 根据用户选择执行相应的步骤
 case $choice in
   1)
-    # 1. 编译Vue项目
-    echo "开始编译Vue项目..."
-    yarn run build:prod
-    if [ $? -ne 0 ]; then
-      echo "Vue项目编译失败。退出脚本。"
-      exit 1
-    fi
-    echo "Vue项目编译完成"
+    compile_project
     ;;
   2)
-    # 2. 构建Docker镜像
-    echo "开始构建Docker镜像..."
-    docker build -t ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION} .
-    if [ $? -ne 0 ]; then
-      echo "Docker镜像构建失败。退出脚本。"
-      exit 1
-    fi
-    echo "Docker镜像构建完成"
+    build_docker_image
     ;;
   3)
-    # 3. 推送Docker镜像到远程仓库
-    echo "开始推送Docker镜像到远程仓库..."
-    docker push ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION}
-    if [ $? -ne 0 ]; then
-      echo "Docker镜像推送失败。退出脚本。"
-      exit 1
-    fi
-    echo "Docker镜像推送完成"
+    push_docker_image
     ;;
   4)
-    # 1. 编译Vue项目
-    echo "开始编译Vue项目..."
-    yarn run build:prod
-    if [ $? -ne 0 ]; then
-      echo "Vue项目编译失败。退出脚本。"
-      exit 1
-    fi
-    echo "Vue项目编译完成"
-
-    # 2. 构建Docker镜像
-    echo "开始构建Docker镜像..."
-    docker build -t ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION} .
-    if [ $? -ne 0 ]; then
-      echo "Docker镜像构建失败。退出脚本。"
-      exit 1
-    fi
-    echo "Docker镜像构建完成"
-
-    # 3. 推送Docker镜像到远程仓库
-    echo "开始推送Docker镜像到远程仓库..."
-    docker push ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION}
-    if [ $? -ne 0 ]; then
-      echo "Docker镜像推送失败。退出脚本。"
-      exit 1
-    fi
-    echo "Docker镜像推送完成"
+    compile_project
+    build_docker_image
+    push_docker_image
     ;;
   *)
-    echo "无效的选项。退出脚本。"
+    log "无效的选项。退出脚本。"
     exit 1
     ;;
 esac
 
-echo "所有任务完成"
+log "所有任务完成"