Files
kt-financial-system/.gitea/TEST_GUIDE.md
你的用户名 6a11d8a70e
Some checks failed
Deploy to Production / Build and Test (push) Has been cancelled
Deploy to Production / Deploy to Server (push) Has been cancelled
ci: 优化 Gitea CI/CD 配置
 新增功能
- 添加构建缓存,提升构建速度 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>
2025-11-04 20:53:39 +08:00

361 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CI/CD 测试指南
## 📝 测试前准备
### 1. 确认 Gitea 配置
确保 Gitea 已经安装并配置了 Actions
```bash
# 检查 Gitea Actions 是否启用
# 在 Gitea 管理界面检查Site Administration → Configuration → Actions
```
### 2. 确认服务器环境
确保目标服务器已安装必要的软件:
```bash
ssh atai@172.16.74.149
# 检查 Docker
docker --version
# 检查 Docker Compose
docker-compose --version
# 检查 Git
git --version
# 检查端口是否可用
sudo netstat -tulpn | grep 8080
```
## 🧪 测试步骤
### 测试 1: 本地构建测试
在推送到 Gitea 之前,先在本地测试构建:
```bash
cd /Users/hahaha/projects/kt-financial-system
# 安装依赖
pnpm install
# 构建项目
pnpm build
# 检查构建产物
ls -la apps/web-antd/dist/
ls -la apps/backend/.output/
```
**预期结果**
- ✅ 构建成功,无错误
-`apps/web-antd/dist/` 目录存在
-`apps/backend/.output/` 目录存在
### 测试 2: 本地 Docker 构建测试
```bash
cd /Users/hahaha/projects/kt-financial-system
# 构建 Docker 镜像
docker build -t kt-financial-test .
# 查看镜像大小
docker images | grep kt-financial-test
# 运行容器测试
docker run -d -p 8081:80 --name kt-financial-test kt-financial-test
# 等待启动
sleep 10
# 测试访问
curl -I http://localhost:8081
# 清理测试容器
docker stop kt-financial-test
docker rm kt-financial-test
docker rmi kt-financial-test
```
**预期结果**
- ✅ 镜像构建成功
- ✅ 容器启动成功
- ✅ HTTP 响应 200/301/302
### 测试 3: Git 推送触发自动部署
```bash
cd /Users/hahaha/projects/kt-financial-system
# 添加修改
git add .
git commit -m "test: 测试 CI/CD 自动部署"
# 推送到 main 分支
git push origin main
```
**验证步骤**
1. **查看 Actions 执行情况**
- 打开 Gitea 仓库页面
- 点击 `Actions` 标签
- 查看最新的 workflow run
2. **检查 Build and Test 阶段**
- ✅ Checkout code - 成功
- ✅ Setup Node.js - 成功
- ✅ Setup pnpm - 成功
- ✅ Install dependencies - 成功
- ✅ Build project - 成功
- ✅ Run tests - 成功(或跳过)
3. **检查 Deploy 阶段**
- ✅ SSH 连接成功
- ✅ 代码拉取成功
- ✅ Docker 镜像构建成功
- ✅ 容器启动成功
4. **检查 Health Check 阶段**
- ✅ 服务健康检查通过
### 测试 4: 手动触发部署
1. 打开 Gitea 仓库页面
2. 点击 `Actions` 标签
3. 点击 `Deploy to Production` workflow
4. 点击 `Run workflow` 按钮
5. 选择 `main` 分支
6. 点击确认
**预期结果**
- ✅ Workflow 成功触发
- ✅ 所有阶段都成功完成
### 测试 5: 服务器验证
```bash
# SSH 登录服务器
ssh atai@172.16.74.149
# 切换到部署目录
cd /home/atai/kt-financial-system
# 检查容器状态
sudo docker-compose ps
# 检查容器日志
sudo docker-compose logs --tail=50
# 检查 Nginx 日志
sudo docker exec kt-financial-system tail -f /var/log/nginx/access.log
# 检查后端日志
sudo docker exec kt-financial-system tail -f /var/log/backend/stdout.log
```
**预期结果**
- ✅ 容器状态为 `Up`
- ✅ 无错误日志
- ✅ Nginx 正常运行
- ✅ 后端正常运行
### 测试 6: 功能测试
```bash
# 测试前端访问
curl -I http://172.16.74.149:8080
# 测试 API 访问
curl http://172.16.74.149:8080/api/ping
```
**预期结果**
- ✅ HTTP 200/301/302
- ✅ 页面正常加载
- ✅ API 正常响应
### 测试 7: 浏览器访问测试
1. 打开浏览器
2. 访问http://172.16.74.149:8080
3. 检查页面是否正常显示
4. 测试登录功能
5. 测试主要功能模块
**预期结果**
- ✅ 页面加载正常
- ✅ 样式显示正常
- ✅ 功能运行正常
- ✅ 无控制台错误
## ⚠️ 常见问题
### 问题 1: Actions 无法触发
**原因**
- Gitea Actions 未启用
- Runner 未配置
**解决**
1. 检查 Gitea 配置文件 `app.ini`
2. 确认 Actions 功能已启用
3. 配置并启动 Runner
### 问题 2: 构建失败
**可能原因**
- 依赖安装失败
- 构建脚本错误
- 内存不足
**解决**
```bash
# 检查 Actions 日志
# 根据错误信息调整构建配置
# 如果是内存问题,可以增加 Node.js 内存限制
NODE_OPTIONS=--max-old-space-size=8192 pnpm build
```
### 问题 3: SSH 连接失败
**可能原因**
- 服务器 IP 地址错误
- SSH 端口不对
- 认证信息错误
**解决**
```bash
# 手动测试 SSH 连接
ssh atai@172.16.74.149
# 检查 Secrets 配置
# 确认 SERVER_HOST, SERVER_USER, SERVER_PASSWORD 正确
```
### 问题 4: Docker 构建失败
**可能原因**
- 依赖下载失败
- 构建超时
- 磁盘空间不足
**解决**
```bash
# 登录服务器
ssh atai@172.16.74.149
# 检查磁盘空间
df -h
# 清理 Docker 缓存
sudo docker system prune -a
# 手动构建测试
cd /home/atai/kt-financial-system
sudo docker-compose build --no-cache
```
### 问题 5: 健康检查失败
**可能原因**
- 服务启动慢
- 端口未开放
- 容器未正常运行
**解决**
```bash
# 检查容器状态
sudo docker-compose ps
# 检查容器日志
sudo docker-compose logs
# 检查端口
sudo netstat -tulpn | grep 8080
# 手动测试访问
curl -I http://localhost:8080
```
## 📊 性能测试
### 测试构建时间
```bash
time pnpm build
```
**预期**
- 首次构建5-10 分钟
- 缓存构建2-5 分钟
### 测试部署时间
观察 Actions 执行时间:
- Build and Test: 3-8 分钟
- Deploy: 2-5 分钟
- Health Check: 30 秒
**总计**:约 5-15 分钟
## ✅ 测试清单
- [ ] 本地构建测试通过
- [ ] 本地 Docker 测试通过
- [ ] Git 推送触发自动部署成功
- [ ] 手动触发部署成功
- [ ] 服务器容器正常运行
- [ ] 前端页面正常访问
- [ ] API 接口正常响应
- [ ] 浏览器功能测试通过
- [ ] 健康检查通过
- [ ] 日志无错误信息
## 📝 测试报告模板
```markdown
## 测试报告
**测试日期**2025-01-XX
**测试人员**XXX
**测试结果**:✅ 通过 / ❌ 失败
### 测试详情
| 测试项 | 状态 | 备注 |
|--------|------|------|
| 本地构建 | ✅ | 无问题 |
| Docker 构建 | ✅ | 无问题 |
| 自动部署 | ✅ | 无问题 |
| 健康检查 | ✅ | 无问题 |
| 功能测试 | ✅ | 无问题 |
### 问题记录
1.
### 改进建议
1. 考虑添加更多测试用例
2. 增加性能监控
```
## 🎯 下一步
测试通过后,可以考虑:
1. ✅ 添加更多环境dev, staging
2. ✅ 集成通知系统(钉钉、企业微信)
3. ✅ 添加回滚功能
4. ✅ 增加监控告警
5. ✅ 优化构建缓存策略