refactor: 精简部署流程,移除 MySQL 管理
Some checks failed
CI 检查 / lint (pull_request) Has been cancelled
CI 检查 / typecheck (pull_request) Has been cancelled
CI 检查 / test (pull_request) Has been cancelled

MySQL 已在服务器运行,部署只需三步:
1. 本地构建 → rsync 同步
2. npm ci(首次)+ migration:run
3. pm2 startOrReload
This commit is contained in:
2026-07-20 15:35:45 +08:00
parent a87f26a915
commit 151ef06ec2
2 changed files with 17 additions and 46 deletions

View File

@@ -1,26 +1,20 @@
# PM2 手动部署工作流
# 手动触发 → 构建前后端 → rsync 同步 → 服务器执行 PM2 重载
# 手动触发 → 构建 → rsync → 安装依赖 → 数据库迁移 → PM2 重载
#
# 前置准备:
# 1. 服务器需安装 PM2: npm i -g pm2
# 2. 服务器需预先启动 MySQL
# 3. Gitea 仓库 Settings → Secrets 配置以下密钥
# 1. 服务器 MySQL 已在运行
# 2. 服务器已安装 PM2: npm i -g pm2
# 3. Gitea 仓库 Settings → Secrets 配置:
# - SSH_PRIVATE_KEY : 部署用 SSH 私钥
# - SSH_HOST : 服务器地址
# - SSH_USER : SSH 用户名
# - SSH_PORT : SSH 端口(默认 22可选
# - REMOTE_DIR : 服务器上的项目目录,如 /opt/gongxue
# - REMOTE_DIR : 服务器项目目录,如 /opt/gongxue
name: PM2 部署
on:
workflow_dispatch:
inputs:
skip_build:
description: '跳过构建(仅同步 + PM2 重载)'
required: false
type: boolean
default: false
jobs:
deploy:
@@ -35,7 +29,6 @@ jobs:
node-version: '22'
- name: 安装依赖 & 构建
if: ${{ !inputs.skip_build }}
run: |
npm ci
npm run build -w @gongxue/server
@@ -68,7 +61,7 @@ jobs:
--exclude='.codegraph/' \
./ deploy-server:${{ secrets.REMOTE_DIR }}/
- name: 安装依赖 & 数据库迁移
- name: 安装依赖 → 迁移 → PM2 重载
run: |
ssh deploy-server "
cd ${{ secrets.REMOTE_DIR }}
@@ -78,15 +71,10 @@ jobs:
npm ci --omit=dev
fi
echo '执行数据库迁移...'
npm run migration:run -w @gongxue/server || echo '迁移跳过(无变更或已是最新)'
"
- name: PM2 重载
run: |
ssh deploy-server "
cd ${{ secrets.REMOTE_DIR }}
npm run migration:run -w @gongxue/server
echo 'PM2 重载...'
pm2 startOrReload ecosystem.config.cjs --update-env
pm2 save
echo '=== PM2 进程状态 ==='
echo '=== PM2 状态 ==='
pm2 status
"