什么是 CI/CD
CI/CD 是现代软件开发的核心实践:
- CI (Continuous Integration) - 持续集成:频繁地将代码合并到主干
- CD (Continuous Deployment) - 持续部署:自动部署到生产环境
为什么需要 CI/CD?
- ✅ 自动化测试,减少手动错误
- ✅ 快速反馈,及时发现问题
- ✅ 加快发布频率
- ✅ 降低部署风险
CI/CD 基础
1. CI/CD 工具对比
帮我对比不同的 CI/CD 工具:
- GitHub Actions
- GitLab CI
- CircleCI
- Jenkins
2. 基本概念
帮我解释这些 CI/CD 概念:
- Workflow
- Job
- Step
- Action
- Runner
GitHub Actions 入门
1. 基本配置
创建 Workflow
在 .github/workflows/ 目录下创建 ci.yml:
yaml
name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test提交并触发
提交这个 workflow 文件,GitHub Actions 会自动运行
2. 常用 Action
帮我找一些常用的 GitHub Actions:
- 缓存依赖
- 部署到 Vercel
- 发送通知
- 代码质量检查
完整 CI/CD 流程
1. 构建流程
yaml
name: Build and Test
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Lint code
run: npm run lint
- name: Type check
run: npm run type-check
- name: Run tests
run: npm test
- name: Build
run: npm run build2. 部署流程
yaml
name: Deploy to Production
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
needs: [test]
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Deploy to Vercel
uses: amondnet/vercel-action@v20
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
vercel-args: '--prod'质量门禁
1. 代码质量检查
帮我配置代码质量检查:
- ESLint
- Prettier
- TypeScript 类型检查
2. 测试覆盖率
帮我设置测试覆盖率要求
配置 Codecov
设置最低覆盖率门槛
3. 安全检查
帮我配置安全扫描:
- npm audit
- Snyk
- CodeQL
多环境部署
1. 环境策略
帮我设计部署环境策略:
- 开发环境
- 测试环境
- 预发布环境
- 生产环境
2. 分支策略
帮我配置基于分支的部署:
- develop → 开发环境
- staging → 预发布环境
- main → 生产环境
通知与监控
1. 构建通知
帮我设置构建通知:
- Slack 通知
- 邮件通知
- 手机通知
2. 部署监控
帮我配置部署监控:
- 健康检查
- 错误追踪
- 性能监控
实战案例
案例一:Next.js 应用部署
创建 Workflow
帮我为这个 Next.js 项目创建 CI/CD workflow
配置部署
配置部署到 Vercel
设置环境变量
帮我设置环境变量和密钥
测试流程
测试完整的 CI/CD 流程
案例二:自动化发布
帮我配置自动化发布流程:
- 版本管理
- CHANGELOG 生成
- GitHub Release 创建
- npm 包发布
案例三:数据库迁移
帮我配置数据库迁移流程:
- 迁移脚本
- 回滚策略
- 数据备份
高级技巧
1. 缓存优化
帮我优化 CI 速度:
- 缓存依赖
- 并行任务
- 按需构建
2. 矩阵测试
帮我配置矩阵测试:
- 多个 Node.js 版本
- 多个操作系统
- 多个浏览器
3. 自托管 Runner
帮我设置自托管 Runner
最佳实践
1. 流程设计
帮我设计最佳 CI/CD 流程
2. 错误处理
帮我处理 CI/CD 失败
3. 成本优化
帮我优化 CI/CD 成本
常见问题
Q: CI 太慢怎么办?
帮我优化 CI 速度
Q: 如何处理机密信息?
帮我安全管理密钥
Q: 如何回滚部署?
帮我配置回滚策略
下一步
掌握了 CI/CD 后,接下来可以学习:
- Claude Code DevOps - 开发运维一体化
- Claude Code 架构设计 - 系统架构思考
- Claude Code 监控 - 应用监控与告警
自动化一切!
CI/CD 的目标是让重复性工作自动化,让你专注于更有价值的事情。开始配置你的第一个 Workflow 吧!