---
name: yangge521/ci-cd-cn
source: https://app.decimal.ai/s/yangge521-ci-cd-cn@1/SKILL.md
source_sha256: 72196ec70855
---

# CI/CD 持续集成与部署

## 概述

提供 GitHub Actions CI/CD 流水线配置模板，涵盖自动化测试、代码检查、Docker 镜像构建发布、多环境部署。

## 使用场景

- 代码质量保障：每次提交自动 lint + test
- 自动构建发布：tag 推送自动构建 Docker 镜像并发布
- 多环境部署：staging 自动部署，production 手动触发
- 性能回归测试：CI 中集成 GPU 性能基准测试
- 模型发布流水线：模型训练完成自动验证和部署
- 安全扫描：CI 中集成依赖漏洞扫描

## 操作指南

### 1. Python 项目 CI 流水线

在 .github/workflows/ci.yml 配置：矩阵测试多 Python 版本（3.10/3.11/3.12），flake8 语法检查，black 格式检查，mypy 类型检查，pytest 覆盖率，上传 Codecov。

### 2. Docker 镜像构建发布

tag 推送触发：docker/metadata-action 生成标签，docker/setup-qemu + buildx 多架构构建，登录 GHCR 和 Docker Hub，build-push-action 构建推送，GHA 缓存。

### 3. 多环境部署

push main 自动部署 staging，workflow_dispatch 手动触发 production。appleboy/ssh-action SSH 连接服务器执行 git pull + docker-compose up -d --build。

### 4. Release 自动发布

tag 推送触发：git log 生成 Changelog，softprops/action-gh-release 创建 Release，附加构建产物。

## 常见问题与排查

| 问题 | 原因 | 解决方案 |
|------|------|---------|
| CI 构建失败 | 依赖版本冲突 | 固定 requirements.txt 版本 |
| Docker 推送失败 | 登录过期 | 检查 secrets/token |
| 部署超时 | 服务器无响应 | 检查 SSH 连接和健康检查 |
| 测试覆盖率低 | 测试不足 | 补充单元测试 |
| 缓存失效 | 依赖变更 | 更新 cache key |
| 并行任务冲突 | 资源竞争 | 使用矩阵策略隔离 |

## 扩展方向

- **GitOps**: ArgoCD/Flux GitOps 部署模式
- **蓝绿部署**: 零停机蓝绿切换
- **金丝雀发布**: 按比例灰度发布
- **性能基准 CI**: 集成 GPU 性能回归测试
- **安全扫描**: Trivy/Snyk 依赖漏洞扫描
- **模型 MLOps**: MLflow/Weights&Biases 模型生命周期

## 技能链路

- **docker-deploy**: CI/CD 构建 Docker 镜像
- **cloud-deploy-cn**: CI/CD 部署到云服务器
- **code-review-cn**: CI 中集成代码审查
- **git-workflow**: Git 分支策略与 CI 配合
- **gpu-benchmark**: CI 中集成性能基准测试

## 检查清单

- [ ] CI 流水线包含 lint + test
- [ ] 多 Python 版本矩阵测试
- [ ] Docker 镜像多架构构建
- [ ] 镜像标签策略合理（semver）
- [ ] Staging 和 Production 环境分离
- [ ] Production 部署需要手动触发
- [ ] Release 自动生成 Changelog
- [ ] Secrets 已正确配置