基于 Claude Code 实现 CI/CD 完整流程

2 阅读3分钟

基于 Claude Code 实现 CI/CD 完整流程

一、整体架构

开发者 push 代码 → GitHub Actions 自动触发 → 编译/测试/打包镜像 → 部署到服务器
                        ↑                                          ↑
                  GitHub 免费提供                              未来上线时加入

核心思路:Claude Code 负责写代码和配置文件,GitHub Actions 负责自动化执行。两者分工明确,互不依赖。


二、用到的工具

工具类型作用安装方式
GitHub ActionsCI/CD 平台自动化构建、测试、部署无需安装,GitHub 内置
Docker容器化将应用打包为标准镜像本地 + 服务器均需安装
docker-compose容器编排一键启动多服务(MySQL+Redis+应用)本地 + 服务器均需安装
MavenJava 构建编译 Spring Boot 项目GitHub Actions 自带
Node.js / npm前端构建编译 Vue 项目GitHub Actions 自带
PlaywrightE2E 测试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-serverMaven 编译 Spring Boot → 打包 JAR → 构建 Docker 镜像
build-adminnpm 编译 Vue3 → 构建 Docker 镜像(Nginx 托管静态文件)
build-mobilenpm 编译 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(根目录唯一)

作用:编排全部服务,一条命令启动整个项目。

services:
  mysql      # MySQL 8.0 数据库
  redis      # Redis 7 缓存
  server     # Spring Boot 后端 (端口 8080)
  admin      # 管理后台 (端口 8081)
  mobile     # H5 移动端 (端口 8082)

使用方式:

# 启动全部服务
docker-compose up -d

# 停止
docker-compose down

4. nginx.conf — 前端项目各一个

作用:Nginx 配置,处理前端路由(SPA history mode)和 /api 反向代理到后端。

5. .gitignore / .dockerignore

作用:排除不需要提交或打包的文件(node_modules、target、dist 等)。


四、操作流程

当前阶段(无服务器)

1. 本地开发 → 写完代码
2. 告诉 Claude Code:"提交代码"
3. Claude Code 执行:git add → git commit → git push
4. GitHub Actions 自动:编译 → 测试 → 构建镜像

未来阶段(有服务器后)

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 状态可用 gh CLI(GitHub 官方命令行工具)

七、关键命令速查

# 提交代码并触发 CI
git add . && git commit -m "描述" && git push

# 本地运行完整项目(需要 Docker)
docker-compose up -d

# 查看 GitHub Actions 状态
gh run list
gh run view <run-id>