001project_wildgrowth/.gitea/workflows
wendazhi 498599e67a
Production deploy / build (push) Successful in 1m28s Details
init2
2026-02-11 19:12:48 +08:00
..
README.md init1 2026-02-11 15:26:03 +08:00
online-deploy.yml init2 2026-02-11 19:12:48 +08:00

README.md

Gitea Actions 部署配置说明

文件说明

  • online-deploy.yml - 生产环境部署 workflowmain 分支和 tag
  • develop-deploy.yml - 开发环境部署 workflowdevelop 分支)

配置步骤

1. 准备 SSH 密钥

在服务器上生成 SSH 密钥对(如果还没有):

ssh-keygen -t rsa -b 4096 -C "gitea-actions-deploy" -f ~/.ssh/gitea_deploy_key

将公钥添加到服务器的 ~/.ssh/authorized_keys

cat ~/.ssh/gitea_deploy_key.pub >> ~/.ssh/authorized_keys

2. 在 Gitea 中配置 Secrets

  1. 进入仓库设置 → Secrets

  2. 添加以下 Secret

    • 名称: SSH_PRIVATE_KEY
    • : 服务器上 ~/.ssh/gitea_deploy_key私钥内容(整个文件内容,包括 -----BEGIN-----END 行)

3. 确保服务器环境

确保服务器上已安装:

  • Node.js 和 npm
  • PM2
  • Git
  • Prisma CLI通过 npm 全局安装或使用 npx

4. 触发部署

生产环境部署online-deploy.yml

自动触发:

  • 推送到 main 分支
  • 推送标签(格式:v*,如 v1.0.0

手动触发:

  1. 进入仓库的 Actions 页面
  2. 选择 "生产环境部署" workflow
  3. 点击 "Run workflow"
  4. 选择要部署的分支或标签
  5. 点击 "Run workflow" 开始部署

开发环境部署develop-deploy.yml

自动触发:

  • 推送到 develop 分支

手动触发:

  1. 进入仓库的 Actions 页面
  2. 选择 "开发环境部署" workflow
  3. 点击 "Run workflow"
  4. 选择要部署的分支(默认 develop
  5. 点击 "Run workflow" 开始部署

Workflow 执行流程

  1. 检出代码
  2. 设置部署分支
  3. 配置 SSH 连接
  4. 测试 SSH 连接
  5. 执行部署脚本(调用服务器上的 deploy-from-github.sh
    • 拉取最新代码
    • 安装依赖
    • Prisma generate
    • 数据库迁移
    • 迁移 Prompt 配置(如果存在)
    • 构建项目
    • 重启 PM2 服务
    • 健康检查
  6. 清理 SSH 密钥
  7. 部署完成通知

回滚

如果部署出现问题,可以通过 SSH 连接到服务器手动回滚:

ssh root@120.55.112.195
cd /var/www/wildgrowth-backend/backend
bash deploy/deploy-from-github.sh rollback

环境配置说明

生产环境online-deploy.yml

  • PM2 服务名: wildgrowth-api
  • 健康检查: http://localhost:3000/health
  • 部署路径: /var/www/wildgrowth-backend/backend

开发环境develop-deploy.yml

  • PM2 服务名: wildgrowth-api-dev(注意:如果开发环境使用不同的服务名,请修改 workflow
  • 健康检查: http://localhost:3001/health(注意:如果开发环境使用不同端口,请修改 workflow
  • 部署路径: /var/www/wildgrowth-backend/backend(注意:如果开发环境使用不同路径,请修改 workflow

提示: 如果开发环境和生产环境使用相同的服务器但不同的目录或端口,请修改 develop-deploy.yml 中的 APP_ROOTPM2_APP_NAMEHEALTH_CHECK_URL 环境变量。

注意事项

  1. SSH 密钥安全: 确保私钥安全,不要提交到代码仓库
  2. 服务器权限: 确保 SSH 用户有足够的权限执行部署操作
  3. 环境变量: 确保服务器上的 .env 文件已正确配置
  4. 健康检查:
    • 生产环境检查 http://localhost:3000/health
    • 开发环境检查 http://localhost:3001/health(如果使用不同端口)
  5. PM2 服务名:
    • 生产环境使用 wildgrowth-api
    • 开发环境使用 wildgrowth-api-dev(如果使用不同服务名)

故障排查

SSH 连接失败

  • 检查 SSH 私钥是否正确配置在 Gitea Secrets 中
  • 检查服务器防火墙是否允许 SSH 连接
  • 检查服务器的 ~/.ssh/authorized_keys 是否包含公钥

部署失败

  • 查看 Actions 日志中的详细错误信息
  • SSH 到服务器检查:pm2 logs wildgrowth-api
  • 检查服务器磁盘空间:df -h
  • 检查 Node.js 版本:node -v

健康检查失败

  • 检查服务是否正常启动:pm2 status
  • 查看服务日志:
    • 生产环境:pm2 logs wildgrowth-api --lines 50
    • 开发环境:pm2 logs wildgrowth-api-dev --lines 50
  • 检查端口是否被占用:
    • 生产环境:netstat -tlnp | grep 3000
    • 开发环境:netstat -tlnp | grep 3001