All checks were successful
Deploy to Server / deploy (push) Successful in 19s
- 创建 deploy.yml 工作流文件,支持自动部署到宿主机 - 使用 runs-on: host 在宿主机上运行 - 自动同步文件、安装依赖并重启 PM2 应用 - 添加部署说明文档
Gitea Actions 部署配置说明
前提条件
- Gitea Runner 已配置为
self-hosted模式,直接在宿主机上运行 - 宿主机上已安装
bun和pm2 - Runner 用户有权限访问
/home/score-backend目录
工作流说明
-
触发条件:
- 推送到
dev或main分支时自动触发 - 也可以手动触发(workflow_dispatch)
- 推送到
-
部署步骤:
- 检出代码到 runner 工作目录
- 使用 rsync 同步文件到
/home/score-backend(排除不需要的文件) - 在目标目录执行
bun install安装依赖 - 使用
pm2 restart media-backend重启应用(如果应用不存在则启动)
文件排除规则
以下文件/目录不会被同步到服务器:
.git- Git 仓库文件node_modules- 依赖包(会在服务器上重新安装).DS_Store- macOS 系统文件*.db- 数据库文件bun.lockb- Bun 锁文件.env/.env.local- 环境变量文件(保留服务器上的配置).gitea- Gitea 工作流文件
PM2 配置
如果 PM2 中还没有 media-backend 应用,工作流会自动创建。你也可以手动配置:
cd /home/score-backend
pm2 start main.ts --name media-backend
pm2 save
pm2 startup # 设置开机自启
注意事项
- 确保 Runner 用户有写入
/home/score-backend的权限 - 确保环境变量在服务器上已正确配置(不会覆盖
.env文件) - 数据库文件不会被覆盖,确保数据安全