Files
xiaoxia-saas/docs/CI-CD.md
T
Xiaoxia AI cb2364a363
Deploy / deploy-staging (push) Failing after 30s
Deploy / deploy-production (push) Has been skipped
Tests / test (push) Failing after 30s
Tests / lint (push) Failing after 30s
feat: add CI/CD pipeline with Gitea Actions
- .gitea/workflows/tests.yml: automated testing + linting on push/PR
- .gitea/workflows/deploy.yml: deployment workflow (placeholder)
- docs/CI-CD.md: CI/CD configuration guide
- requirements-dev.txt: development dependencies (pytest, black, flake8, mypy)
- test job: run pytest with coverage report
- lint job: black + flake8 + mypy code quality checks
2026-06-15 16:53:09 +08:00

2.6 KiB
Raw Blame History

CI/CD Configuration

Gitea Actions

本项目使用 Gitea Actions 实现 CI/CD 流水线。

工作流文件

1. .gitea/workflows/tests.yml - 自动化测试

触发条件:

  • 每次 push 到 main 分支
  • 每次创建 Pull Request

包含任务:

  • test - 运行集成测试,生成覆盖率报告
  • lint - 代码质量检查(Black、Flake8、MyPy

2. .gitea/workflows/deploy.yml - 自动化部署

触发条件:

  • push 到 main 分支 → 部署到 staging 环境
  • 创建 tag (v*) → 部署到 production 环境

当前状态:占位,待补充真实部署脚本


本地验证

在推送前,可以本地运行验证:

运行测试

pytest tests/integration/ -v --cov=packages --cov=apps --cov-report=html

代码格式化

black packages/ apps/ tests/

代码检查

# Flake8
flake8 packages/ apps/ tests/ --max-line-length=120 --extend-ignore=E203,W503

# MyPy
mypy packages/ apps/ --ignore-missing-imports

排序 imports

isort packages/ apps/ tests/

Gitea Actions 配置

前提条件

  1. Gitea 服务器需要启用 Actions 功能
  2. 需要配置 Actions Runner

启用步骤

在 Gitea 服务器上

  1. 编辑 /etc/gitea/app.ini(或对应配置文件):
[actions]
ENABLED = true
  1. 重启 Gitea
systemctl restart gitea
  1. 安装 Actions Runner
# 下载 act_runner
wget https://dl.gitea.com/act_runner/latest/act_runner-linux-amd64
chmod +x act_runner-linux-amd64
mv act_runner-linux-amd64 /usr/local/bin/act_runner

# 注册 runner
act_runner register --instance http://your-gitea-server --token YOUR_RUNNER_TOKEN

# 运行 runner
act_runner daemon
  1. 在仓库设置中启用 Actions

验证 CI/CD

推送代码后,在 Gitea 仓库页面查看:

  • Actions 标签页
  • 查看工作流运行状态
  • 查看测试结果和覆盖率报告

故障排查

Actions 未触发

  • 检查 Gitea 是否启用 Actions
  • 检查工作流文件路径是否正确(.gitea/workflows/
  • 检查 YAML 语法是否正确

测试失败

  • 查看 Actions 日志
  • 本地运行 pytest tests/integration/ -v
  • 检查依赖是否完整

Linting 失败

  • 本地运行 black --check packages/
  • 本地运行 flake8 packages/
  • 修复后重新推送

未来扩展

  • 添加性能测试
  • 添加安全扫描
  • 添加 Docker 镜像构建
  • 添加自动化部署脚本
  • 添加 Slack/钉钉通知

最后更新: 2026-06-15
状态: 配置完成,待 Gitea Actions 启用