Files
kt-financial-system/.gitea
你的用户名 74aed58f5a
All checks were successful
Deploy to Production / Build and Test (push) Successful in 10m36s
Deploy to Production / Deploy to Server (push) Successful in 4s
ci: default MCP deploy path
2025-11-08 21:00:20 +08:00
..
2025-11-08 21:00:20 +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。