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

基于 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 状态可用 gh CLI(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>

相关推荐
mayaairi9 分钟前
Vue2 组件通讯(三):全局事件总线、PubSub、插槽与组件实例属性
前端·javascript·vue.js
kyriewen1 小时前
面试官问我:AI 都能写代码了,前端凭什么还值 25K
前端·javascript·人工智能
风骏时光牛马2 小时前
AI源码分析:拆解模型底层实现逻辑
前端
IT_陈寒2 小时前
React子组件莫名其妙重渲染?你可能漏了这个Hook
前端·人工智能·后端
乘风gg2 小时前
DeepSeek V4.1 Flash 来了,明天中午 Flash 降价 60%
前端·ai编程·claude
小兵金林2 小时前
AI 生成代码的思考与实践
后端·ai编程
码事漫谈2 小时前
DeepSeek 明天又降价(涵历史价格对比)
后端
前端精髓2 小时前
NestJS 是什么(对着 Spring Boot 一起学习)
spring boot·后端·学习
国奉2 小时前
从零设计一个 iOS 文件浏览器:Sandbox、FileManager、Document Picker 与文件架构
后端
默_笙2 小时前
❗ 给金鱼装记忆(上):从白板到笔记本,AI 的短期记忆生存指南
前端·javascript