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

139 lines
2.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 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 环境
当前状态:占位,待补充真实部署脚本
---
## 本地验证
在推送前,可以本地运行验证:
### 运行测试
```bash
pytest tests/integration/ -v --cov=packages --cov=apps --cov-report=html
```
### 代码格式化
```bash
black packages/ apps/ tests/
```
### 代码检查
```bash
# Flake8
flake8 packages/ apps/ tests/ --max-line-length=120 --extend-ignore=E203,W503
# MyPy
mypy packages/ apps/ --ignore-missing-imports
```
### 排序 imports
```bash
isort packages/ apps/ tests/
```
---
## Gitea Actions 配置
### 前提条件
1. Gitea 服务器需要启用 Actions 功能
2. 需要配置 Actions Runner
### 启用步骤
**在 Gitea 服务器上**
1. 编辑 `/etc/gitea/app.ini`(或对应配置文件):
```ini
[actions]
ENABLED = true
```
2. 重启 Gitea
```bash
systemctl restart gitea
```
3. 安装 Actions Runner
```bash
# 下载 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
```
4. 在仓库设置中启用 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 启用