deploy: 2026-06-25 20:23 更新部署
This commit is contained in:
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
SERVER="h2agent"
|
SERVER="${SERVER:-h2agent}"
|
||||||
REMOTE_DIR="/opt/govai"
|
REMOTE_DIR="/opt/govai"
|
||||||
DOMAIN="gov.opc8ai.com"
|
DOMAIN="gov.opc8ai.com"
|
||||||
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
@@ -88,8 +88,9 @@ build_local() {
|
|||||||
|
|
||||||
log "编译 Next.js 前端..."
|
log "编译 Next.js 前端..."
|
||||||
cd "$PROJECT_DIR/apps/web"
|
cd "$PROJECT_DIR/apps/web"
|
||||||
|
rm -rf .next
|
||||||
NEXT_PUBLIC_API_URL="http://localhost:8080" npm run build
|
NEXT_PUBLIC_API_URL="http://localhost:8080" npm run build
|
||||||
log "前端编译完成"
|
log "前端编译完成 (.next: $(du -sh .next | cut -f1))"
|
||||||
cd "$PROJECT_DIR"
|
cd "$PROJECT_DIR"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,17 +102,17 @@ upload() {
|
|||||||
log "停止服务以释放文件锁..."
|
log "停止服务以释放文件锁..."
|
||||||
ssh $SERVER "systemctl stop govai-api govai-web 2>/dev/null || true"
|
ssh $SERVER "systemctl stop govai-api govai-web 2>/dev/null || true"
|
||||||
|
|
||||||
log "上传后端二进制..."
|
log "上传后端二进制 (gzip 流)..."
|
||||||
scp "$PROJECT_DIR/dist/server" $SERVER:$REMOTE_DIR/server/server
|
gzip -c "$PROJECT_DIR/dist/server" | ssh $SERVER "gunzip -c > $REMOTE_DIR/server/server.new && mv -f $REMOTE_DIR/server/server.new $REMOTE_DIR/server/server && chmod +x $REMOTE_DIR/server/server"
|
||||||
|
|
||||||
log "上传迁移文件..."
|
log "上传迁移文件..."
|
||||||
rsync -az --delete "$PROJECT_DIR/server/migrations/" $SERVER:$REMOTE_DIR/migrations/
|
rsync -az --delete "$PROJECT_DIR/server/migrations/" $SERVER:$REMOTE_DIR/migrations/
|
||||||
|
|
||||||
log "上传前端构建产物..."
|
log "上传前端构建产物 (tar 压缩流, 排除 dev/cache)..."
|
||||||
rsync -az --delete "$PROJECT_DIR/apps/web/.next/" $SERVER:$REMOTE_DIR/web/.next/
|
tar czf - -C "$PROJECT_DIR/apps/web" \
|
||||||
rsync -az "$PROJECT_DIR/apps/web/public/" $SERVER:$REMOTE_DIR/web/public/ 2>/dev/null || true
|
--exclude='.next/dev' --exclude='.next/cache' \
|
||||||
scp "$PROJECT_DIR/apps/web/package.json" $SERVER:$REMOTE_DIR/web/
|
.next public package.json next.config.ts \
|
||||||
scp "$PROJECT_DIR/apps/web/next.config.ts" $SERVER:$REMOTE_DIR/web/
|
| ssh $SERVER "rm -rf $REMOTE_DIR/web/.next && tar xzf - -C $REMOTE_DIR/web"
|
||||||
|
|
||||||
log "上传完成"
|
log "上传完成"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user