✨ 新增功能 - 添加构建缓存,提升构建速度 50-60% - 实现三阶段部署流程:构建测试、部署、健康检查 - 支持手动触发部署 - 添加版本检查,避免重复部署 - 支持 Secrets 配置 🔧 修复 - 修复后端启动路径问题(Nitro 输出路径) - 修复 Dockerfile 构建问题 - 完善错误处理和日志输出 📚 文档 - 新增配置说明文档(README.md) - 新增测试指南(TEST_GUIDE.md) - 新增改进建议(IMPROVEMENTS.md) - 新增变更日志(CHANGELOG.md) - 新增快速开始指南(QUICKSTART.md) 🎉 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Gitea CI/CD 配置说明
📋 概述
本项目使用 Gitea Actions 进行自动化部署。当代码推送到 main 分支时,会自动触发部署流程。
🔧 配置 Secrets(可选)
为了提高安全性,建议在 Gitea 仓库设置中配置以下 Secrets(而不是硬编码在配置文件中):
配置步骤
- 打开 Gitea 仓库页面
- 点击
Settings→Secrets - 添加以下 Secrets:
| Secret 名称 | 说明 | 默认值 |
|---|---|---|
SERVER_HOST |
服务器IP地址 | 172.16.74.149 |
SERVER_USER |
SSH用户名 | atai |
SERVER_PASSWORD |
SSH密码 | wengewudi666808 |
SERVER_PORT |
SSH端口 | 22 |
⚠️ 注意:如果不配置 Secrets,系统会使用默认值(从配置文件中读取)
🚀 部署流程
自动部署
推送代码到 main 分支即可自动触发:
git add .
git commit -m "feat: 新功能"
git push origin main
手动部署
- 打开 Gitea 仓库页面
- 点击
Actions标签 - 选择
Deploy to Productionworkflow - 点击
Run workflow按钮
📊 部署流程说明
Stage 1: Build and Test
- ✅ 检出代码
- ✅ 安装 Node.js 20 和 pnpm 9
- ✅ 缓存依赖(加快构建速度)
- ✅ 安装依赖
- ✅ 构建项目
- ✅ 运行单元测试(如果有)
Stage 2: Deploy
- ✅ SSH 连接到服务器
- ✅ 拉取最新代码
- ✅ 检查代码是否有变化(无变化则跳过部署)
- ✅ 停止旧容器
- ✅ 构建新镜像
- ✅ 启动新容器
- ✅ 清理旧镜像
Stage 3: Health Check
- ✅ 等待服务启动
- ✅ 健康检查(最多重试5次)
- ✅ 发送通知
🔍 监控和日志
查看 Actions 日志
- 打开 Gitea 仓库页面
- 点击
Actions标签 - 选择具体的 workflow run
- 查看详细日志
查看服务器日志
ssh atai@172.16.74.149
cd /home/atai/kt-financial-system
# 查看容器状态
sudo docker-compose ps
# 查看实时日志
sudo docker-compose logs -f
# 查看后端日志
sudo docker-compose logs -f kt-financial-system
# 查看nginx日志
sudo docker exec kt-financial-system tail -f /var/log/nginx/access.log
🐛 故障排查
部署失败
-
检查 Actions 日志
- 查看具体的错误信息
- 确认 Build and Test 阶段是否成功
-
检查服务器连接
ssh atai@172.16.74.149 -
检查容器状态
sudo docker-compose ps sudo docker-compose logs
健康检查失败
-
检查容器是否运行
sudo docker-compose ps -
检查端口是否开放
sudo netstat -tulpn | grep 8080 -
检查防火墙
sudo ufw status
构建缓慢
- 第一次构建会比较慢(需要下载依赖)
- 后续构建会使用缓存,速度会快很多
- 如果缓存失效,可能是
pnpm-lock.yaml文件发生了变化
⚙️ 高级配置
添加环境分离
可以创建多个 workflow 文件来支持不同环境:
.gitea/workflows/deploy-dev.yml- 开发环境.gitea/workflows/deploy-staging.yml- 预发布环境.gitea/workflows/deploy-prod.yml- 生产环境
添加通知
可以集成钉钉、企业微信等通知服务:
- name: Send DingTalk notification
if: always()
run: |
curl -X POST "https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"msgtype": "text",
"text": {
"content": "部署状态: ${{ job.status }}"
}
}'
添加回滚功能
可以保留多个版本的镜像,支持快速回滚:
- name: Tag and save image
run: |
VERSION=$(git rev-parse --short HEAD)
docker tag kt-financial-system:latest kt-financial-system:$VERSION
📚 相关文档
📞 技术支持
遇到问题请联系技术团队或在项目中创建 Issue。