Files
kt-financial-system/.gitea
你的用户名 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
..
2025-11-04 20:53:39 +08:00
2025-11-04 20:53:39 +08:00
2025-11-04 20:53:39 +08:00
2025-11-04 20:53:39 +08:00
2025-11-04 20:53:39 +08:00
2025-11-04 20:53:39 +08:00

Gitea CI/CD 配置说明

📋 概述

本项目使用 Gitea Actions 进行自动化部署。当代码推送到 main 分支时,会自动触发部署流程。

🔧 配置 Secrets可选

为了提高安全性,建议在 Gitea 仓库设置中配置以下 Secrets而不是硬编码在配置文件中

配置步骤

  1. 打开 Gitea 仓库页面
  2. 点击 SettingsSecrets
  3. 添加以下 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

手动部署

  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. 查看详细日志

查看服务器日志

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. 检查服务器连接

    ssh atai@172.16.74.149
    
  3. 检查容器状态

    sudo docker-compose ps
    sudo docker-compose logs
    

健康检查失败

  1. 检查容器是否运行

    sudo docker-compose ps
    
  2. 检查端口是否开放

    sudo netstat -tulpn | grep 8080
    
  3. 检查防火墙

    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。