基于 Claude Code 实现 CI/CD 完整流程
一、整体架构
markdown
开发者 push 代码 → GitHub Actions 自动触发 → 编译/测试/打包镜像 → 部署到服务器
↑ ↑
GitHub 免费提供 未来上线时加入
核心思路:Claude Code 负责写代码和配置文件,GitHub Actions 负责自动化执行。两者分工明确,互不依赖。
二、用到的工具
| 工具 | 类型 | 作用 | 安装方式 |
|---|---|---|---|
| GitHub Actions | CI/CD 平台 | 自动化构建、测试、部署 | 无需安装,GitHub 内置 |
| Docker | 容器化 | 将应用打包为标准镜像 | 本地 + 服务器均需安装 |
| docker-compose | 容器编排 | 一键启动多服务(MySQL+Redis+应用) | 本地 + 服务器均需安装 |
| Maven | Java 构建 | 编译 Spring Boot 项目 | GitHub Actions 自带 |
| Node.js / npm | 前端构建 | 编译 Vue 项目 | GitHub Actions 自带 |
| Playwright | E2E 测试 | H5 端自动化测试 | CI 流水线中自动安装 |
| Git | 版本控制 | 代码管理,push 触发 CI | 本地已安装 |
不需要 Jenkins:GitHub Actions 替代了 Jenkins 的角色,免去搭建和维护成本。
三、项目配置文件清单
1. GitHub Actions 流水线 --- .github/workflows/ci.yml
路径:项目根目录/.github/workflows/ci.yml
作用:定义自动化流水线,push 到 main/master 分支时自动触发。
包含三个 Job:
| Job | 内容 |
|---|---|
| build-server | Maven 编译 Spring Boot → 打包 JAR → 构建 Docker 镜像 |
| build-admin | npm 编译 Vue3 → 构建 Docker 镜像(Nginx 托管静态文件) |
| build-mobile | npm 编译 Vue3 → 运行 Playwright 测试 → 构建 Docker 镜像 |
当前 push: false,仅构建镜像不推送。上线时改为 push: true,镜像推送到 GitHub Container Registry(免费)。
2. Dockerfile --- 每个子项目一个
作用:定义如何将该模块打包成 Docker 镜像。
fenglou-server/Dockerfile:多阶段构建,Maven 编译 → JRE 运行fenglou-admin/Dockerfile:多阶段构建,Vite 编译 → Nginx 托管fenglou-mobile/Dockerfile:多阶段构建,Vite 编译 → Nginx 托管
3. docker-compose.yml(根目录唯一)
作用:编排全部服务,一条命令启动整个项目。
yaml
services:
mysql # MySQL 8.0 数据库
redis # Redis 7 缓存
server # Spring Boot 后端 (端口 8080)
admin # 管理后台 (端口 8081)
mobile # H5 移动端 (端口 8082)
使用方式:
bash
# 启动全部服务
docker-compose up -d
# 停止
docker-compose down
4. nginx.conf --- 前端项目各一个
作用:Nginx 配置,处理前端路由(SPA history mode)和 /api 反向代理到后端。
5. .gitignore / .dockerignore
作用:排除不需要提交或打包的文件(node_modules、target、dist 等)。
四、操作流程
当前阶段(无服务器)
markdown
1. 本地开发 → 写完代码
2. 告诉 Claude Code:"提交代码"
3. Claude Code 执行:git add → git commit → git push
4. GitHub Actions 自动:编译 → 测试 → 构建镜像
未来阶段(有服务器后)
markdown
1. 本地开发 → 写完代码
2. 告诉 Claude Code:"提交代码"
3. Claude Code:git add → commit → push
4. GitHub Actions 自动:编译 → 测试 → 构建镜像 → 推送镜像到仓库 → SSH 服务器拉取部署
5. Claude Code 可辅助:查看 Actions 状态、SSH 排错、修改生产配置
五、Claude Code 的角色
Claude Code 本身不参与 CI 执行,它负责:
| 做的事 | 说明 |
|---|---|
| 编写配置文件 | ci.yml、Dockerfile、docker-compose.yml |
| 提交并推送代码 | git add / commit / push,触发 CI |
| 查看 CI 状态 | 用 gh CLI 查看 Actions 运行结果 |
| 排查问题 | 出错了帮你改配置或代码 |
GitHub 收到 push 后全是自动的,不需要 Claude Code 在线。
六、不需要额外配置的技能/MCP
- 上述流程不需要额外的 Skill 或 MCP 工具
- GitHub Actions 是 GitHub 平台能力,与 Claude Code 无关
- Claude Code 只需要
Bash(git 命令)即可完成提交 - 查看 Actions 状态可用
ghCLI(GitHub 官方命令行工具)
七、关键命令速查
bash
# 提交代码并触发 CI
git add . && git commit -m "描述" && git push
# 本地运行完整项目(需要 Docker)
docker-compose up -d
# 查看 GitHub Actions 状态
gh run list
gh run view <run-id>