Files
kt-financial-system/.gitea/README.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

187 lines
4.1 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.

# Gitea CI/CD 配置说明
## 📋 概述
本项目使用 Gitea Actions 进行自动化部署。当代码推送到 `main` 分支时,会自动触发部署流程。
## 🔧 配置 Secrets可选
为了提高安全性,建议在 Gitea 仓库设置中配置以下 Secrets而不是硬编码在配置文件中
### 配置步骤
1. 打开 Gitea 仓库页面
2. 点击 `Settings``Secrets`
3. 添加以下 Secrets
| Secret 名称 | 说明 | 默认值 |
|------------|------|--------|
| `SERVER_HOST` | 服务器IP地址 | 172.16.74.149 |
| `SERVER_USER` | SSH用户名 | atai |
| `SERVER_PASSWORD` | SSH密码 | wengewudi666808 |
| `SERVER_PORT` | SSH端口 | 22 |
> ⚠️ **注意**:如果不配置 Secrets系统会使用默认值从配置文件中读取
## 🚀 部署流程
### 自动部署
推送代码到 `main` 分支即可自动触发:
```bash
git add .
git commit -m "feat: 新功能"
git push origin main
```
### 手动部署
1. 打开 Gitea 仓库页面
2. 点击 `Actions` 标签
3. 选择 `Deploy to Production` workflow
4. 点击 `Run workflow` 按钮
## 📊 部署流程说明
### Stage 1: Build and Test
- ✅ 检出代码
- ✅ 安装 Node.js 20 和 pnpm 9
- ✅ 缓存依赖(加快构建速度)
- ✅ 安装依赖
- ✅ 构建项目
- ✅ 运行单元测试(如果有)
### Stage 2: Deploy
- ✅ SSH 连接到服务器
- ✅ 拉取最新代码
- ✅ 检查代码是否有变化(无变化则跳过部署)
- ✅ 停止旧容器
- ✅ 构建新镜像
- ✅ 启动新容器
- ✅ 清理旧镜像
### Stage 3: Health Check
- ✅ 等待服务启动
- ✅ 健康检查最多重试5次
- ✅ 发送通知
## 🔍 监控和日志
### 查看 Actions 日志
1. 打开 Gitea 仓库页面
2. 点击 `Actions` 标签
3. 选择具体的 workflow run
4. 查看详细日志
### 查看服务器日志
```bash
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
```
## 🐛 故障排查
### 部署失败
1. **检查 Actions 日志**
- 查看具体的错误信息
- 确认 Build and Test 阶段是否成功
2. **检查服务器连接**
```bash
ssh atai@172.16.74.149
```
3. **检查容器状态**
```bash
sudo docker-compose ps
sudo docker-compose logs
```
### 健康检查失败
1. **检查容器是否运行**
```bash
sudo docker-compose ps
```
2. **检查端口是否开放**
```bash
sudo netstat -tulpn | grep 8080
```
3. **检查防火墙**
```bash
sudo ufw status
```
### 构建缓慢
- 第一次构建会比较慢(需要下载依赖)
- 后续构建会使用缓存,速度会快很多
- 如果缓存失效,可能是 `pnpm-lock.yaml` 文件发生了变化
## ⚙️ 高级配置
### 添加环境分离
可以创建多个 workflow 文件来支持不同环境:
- `.gitea/workflows/deploy-dev.yml` - 开发环境
- `.gitea/workflows/deploy-staging.yml` - 预发布环境
- `.gitea/workflows/deploy-prod.yml` - 生产环境
### 添加通知
可以集成钉钉、企业微信等通知服务:
```yaml
- 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 }}"
}
}'
```
### 添加回滚功能
可以保留多个版本的镜像,支持快速回滚:
```yaml
- name: Tag and save image
run: |
VERSION=$(git rev-parse --short HEAD)
docker tag kt-financial-system:latest kt-financial-system:$VERSION
```
## 📚 相关文档
- [Gitea Actions 文档](https://docs.gitea.com/usage/actions/overview)
- [Docker Compose 文档](https://docs.docker.com/compose/)
- [项目部署文档](../DEPLOYMENT.md)
## 📞 技术支持
遇到问题请联系技术团队或在项目中创建 Issue。