Quellcode durchsuchen

Add Git authentication to deployment script

wui vor 6 Monaten
Ursprung
Commit
69af196ebf
1 geänderte Dateien mit 12 neuen und 95 gelöschten Zeilen
  1. 12 95
      deploy.sh

+ 12 - 95
deploy.sh

@@ -13,116 +13,33 @@ GIT_REPO_WITH_AUTH="https://${username}:${password}@git.izouma.com/wuyi/tweb-api
 
 echo "🚀 开始部署 $PROJECT_NAME..."
 
-# 检查项目目录是否存在
-if [ ! -d "$PROJECT_DIR" ]; then
-    echo "📥 克隆项目..."
-    if git clone -b main "$GIT_REPO_WITH_AUTH" "$PROJECT_DIR"; then
-        echo "✅ 项目克隆成功"
-    else
-        echo "❌ 项目克隆失败"
-        exit 1
-    fi
-fi
-
 # 进入项目目录
 cd "$PROJECT_DIR"
 
-# 检查是否是 Git 仓库
-if [ ! -d ".git" ]; then
-    echo "❌ 项目目录不是 Git 仓库"
-    exit 1
-fi
-
-# 检查 package.json 是否存在
-if [ ! -f "package.json" ]; then
-    echo "❌ package.json 文件不存在"
-    exit 1
-fi
-
-# Git 操作函数
-handle_git_operations() {
-    git remote set-url origin "$GIT_REPO_WITH_AUTH"
-    
-    # 修复 Git 权限问题
-    git config --global --add safe.directory "$PROJECT_DIR"
-    
-    if git pull origin main; then
-        echo "✅ 代码更新成功"
-        echo "📝 当前提交: $(git log --oneline -1)"
-    else
-        echo "❌ Git 拉取失败"
-        echo "是否继续部署(跳过代码拉取)?(y/N)"
-        read -r response
-        if [[ "$response" != "y" && "$response" != "Y" ]]; then
-            echo "部署已取消"
-            exit 1
-        fi
-    fi
-}
+# 设置 Git 远程仓库 URL(包含认证信息)
+echo "🔧 配置 Git 远程仓库..."
+git remote set-url origin "$GIT_REPO_WITH_AUTH"
 
-handle_git_operations
-
-# 停止现有的 PM2 进程并清理配置
-echo "🛑 停止并清理 PM2 应用..."
-pm2 delete tweb-api 2>/dev/null || true
-pm2 save 2>/dev/null || true
-pm2 kill 2>/dev/null || true
-
-# 删除 package-lock.json 以避免包管理器冲突
-if [ -f "package-lock.json" ]; then
-    echo "🗑️ 删除 package-lock.json 以避免包管理器冲突..."
-    rm package-lock.json
-fi
+# Git 拉取最新代码
+echo "📥 拉取最新代码..."
+git pull origin main
 
 # 安装依赖
 echo "📦 安装依赖..."
 yarn install
 
-# 清理旧的构建文件
-rm -rf dist
-
 # 构建项目
 echo "🔨 构建项目..."
 yarn build
 
-# 检查构建是否成功
-if [ ! -f "dist/server.js" ]; then
-    echo "❌ 构建失败: dist/server.js 文件不存在"
-    exit 1
-fi
-
-echo "✅ 构建成功,文件存在: dist/server.js"
-
-# 显示关键文件内容用于调试
-echo "🔍 检查 database.ts 配置..."
-if [ -f "dist/config/database.js" ]; then
-    echo "📄 dist/config/database.js 存在"
-    grep -A 10 -B 5 "entities" dist/config/database.js || echo "未找到 entities 配置"
-else
-    echo "❌ dist/config/database.js 不存在"
-fi
-
-# 替换配置文件
+# 复制配置文件
+echo "📋 复制配置文件..."
 cp .env.production dist/.env
 cp package.json dist/package.json
 
-# 设置环境变量
-export NODE_ENV=production
-
-# 检查 PM2 应用是否已存在并启动
-if pm2 list | grep -q "tweb-api"; then
-    echo "🔄 重启现有的 PM2 应用..."
-    pm2 delete tweb-api
-    NODE_ENV=production pm2 start dist/server.js --name tweb-api
-else
-    echo "🚀 启动新的 PM2 应用..."
-    echo "📁 启动文件: $(pwd)/dist/server.js"
-    NODE_ENV=production pm2 start dist/server.js --name tweb-api
-fi
-pm2 save
+# 重启 PM2 应用
+echo "🔄 重启 PM2 应用..."
+pm2 restart tweb-api
 
 echo "✅ 部署完成!"
-pm2 status
-
-echo "📋 显示日志(按 Ctrl+C 退出):"
-pm2 logs tweb-api 
+pm2 status