Blame view

deploy-test.sh 1.95 KB
a8d4e5e8   王彪总   feat(garden): 添加G...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  #!/bin/bash
  set -e
  
  # ==================== 配置 ====================
  SERVER_HOST="172.17.16.14"
  SERVER_USER="root"
  SERVER_PASS="JCSS@2025!@#$"
  UPLOAD_DIR="/home/user/test_jar"
  RESTART_SCRIPT="restart.sh"
  JAR_NAME="urbanops-server.jar"
  PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
  JAR_PATH="$PROJECT_DIR/urbanops-server/target/$JAR_NAME"
  
  # ==================== 函数 ====================
  
  check_sshpass() {
      if ! command -v sshpass &> /dev/null; then
          echo "[check] sshpass 未安装,尝试安装..."
          if command -v brew &> /dev/null; then
              brew install hudochenkov/sshpass/sshpass
          else
              echo "[ERROR] 请手动安装 sshpass: brew install hudochenkov/sshpass/sshpass"
              exit 1
          fi
      fi
  }
  
  build() {
      echo "[build] 开始 Maven 打包(跳过测试)..."
      cd "$PROJECT_DIR"
      mvn clean package -DskipTests
      if [ -f "$JAR_PATH" ]; then
          echo "[build] 打包完成: $JAR_PATH ($(du -sh "$JAR_PATH" | cut -f1))"
      else
          echo "[ERROR] 打包失败,未找到 $JAR_PATH"
          exit 1
      fi
  }
  
  upload() {
      echo "[upload] 上传 JAR 到 $SERVER_HOST:$UPLOAD_DIR/ ..."
      sshpass -p "$SERVER_PASS" scp -o StrictHostKeyChecking=no "$JAR_PATH" "$SERVER_USER@$SERVER_HOST:$UPLOAD_DIR/"
      echo "[upload] 上传完成"
  }
  
  restart() {
      echo "[restart] 调用远程重启脚本..."
      sshpass -p "$SERVER_PASS" ssh -o StrictHostKeyChecking=no "$SERVER_USER@$SERVER_HOST" \
          "cd $UPLOAD_DIR && chmod +x $RESTART_SCRIPT && ./$RESTART_SCRIPT"
      echo "[restart] 远程重启完成"
  }
  
  # ==================== 主流程 ====================
  
  echo "========================================"
  echo "  UrbanOps 测试环境部署"
  echo "  目标: $SERVER_USER@$SERVER_HOST:$UPLOAD_DIR"
  echo "========================================"
  
  check_sshpass
  build
  upload
  restart
  
  echo ""
  echo "========================================"
  echo "  部署完成"
  echo "========================================"