chore: 添加一键部署脚本 scripts/deploy.sh
自动构建 + rsync 编译产物和源码 + pm2 restart Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
parent
8d8945f92b
commit
209f2e3d05
63
scripts/deploy.sh
Executable file
63
scripts/deploy.sh
Executable file
@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# 一键部署:编译产物 + 源码同步到生产服务器 + PM2 重启
|
||||
# 用法: bash scripts/deploy.sh
|
||||
|
||||
SSH_HOST="ubuntu@172.81.241.109"
|
||||
DEPLOY_DIR="/opt/pingtai"
|
||||
SSHPASS_VAR="${SSHPASS:-Jubianshuzi@2026}"
|
||||
SSH_CMD="sshpass -p $SSHPASS_VAR ssh -o StrictHostKeyChecking=no"
|
||||
RSYNC_CMD="sshpass -p $SSHPASS_VAR rsync -avz --delete"
|
||||
|
||||
echo "=========================================="
|
||||
echo " 部署开始: $(date '+%Y-%m-%d %H:%M:%S')"
|
||||
echo "=========================================="
|
||||
|
||||
# 1. 构建
|
||||
echo ""
|
||||
echo "[1/5] 构建 API..."
|
||||
npm run build -w apps/api 2>&1 | tail -3
|
||||
echo " ✅ API 构建完成"
|
||||
|
||||
echo "[2/5] 构建 Web..."
|
||||
npm run build -w apps/web 2>&1 | tail -3
|
||||
echo " ✅ Web 构建完成"
|
||||
|
||||
# 2. 同步编译产物
|
||||
echo ""
|
||||
echo "[3/5] 同步编译产物..."
|
||||
$RSYNC_CMD apps/api/dist/ $SSH_HOST:$DEPLOY_DIR/apps/api/dist/ 2>&1 | tail -1
|
||||
echo " ✅ API dist 同步完成"
|
||||
$RSYNC_CMD apps/web/.next/ $SSH_HOST:$DEPLOY_DIR/apps/web/.next/ 2>&1 | tail -1
|
||||
echo " ✅ Web .next 同步完成"
|
||||
|
||||
# 3. 同步源码(排除构建产物和依赖)
|
||||
echo ""
|
||||
echo "[4/5] 同步源码..."
|
||||
$RSYNC_CMD \
|
||||
--exclude='node_modules' \
|
||||
--exclude='dist' \
|
||||
--exclude='.next' \
|
||||
--exclude='*.db' \
|
||||
--exclude='*.db-journal' \
|
||||
--exclude='.env' \
|
||||
--exclude='.env.*' \
|
||||
--exclude='.git' \
|
||||
--exclude='.dev-api.pid' \
|
||||
--exclude='.dev-web.pid' \
|
||||
--exclude='public/uploads' \
|
||||
/Users/zou/Documents/02-平台开发/平台助手/ \
|
||||
$SSH_HOST:$DEPLOY_DIR/ 2>&1 | tail -1
|
||||
echo " ✅ 源码同步完成"
|
||||
|
||||
# 4. 重启 PM2
|
||||
echo ""
|
||||
echo "[5/5] 重启 PM2..."
|
||||
$SSH_CMD $SSH_HOST "source ~/.nvm/nvm.sh 2>/dev/null; pm2 restart pingtai-api pingtai-web --update-env" 2>&1 | tail -3
|
||||
echo " ✅ PM2 重启完成"
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " 部署完成: $(date '+%Y-%m-%d %H:%M:%S')"
|
||||
echo "=========================================="
|
||||
Loading…
Reference in New Issue
Block a user