自动化与 CI/CD

CI/CD 管道集成

Codex 可以无缝集成到 CI/CD 管道中,实现自动化的代码审查、测试修复和质量检查。

集成架构

开发者提交代码
    ↓
CI 触发器(GitHub Actions / GitLab CI / Jenkins)
    ↓
Codex 自动执行任务
    ├── 代码审查
    ├── Bug 修复
    ├── 测试更新
    ├── 文档生成
    └── 构建优化
    ↓
生成报告 → 通知团队

GitHub Actions 集成

代码审查 Action

# .github/workflows/codex-review.yml
name: Codex Code Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "20"

      - name: Install Codex
        run: npm install -g @anthropic-ai/claude-code

      - name: Run Code Review
        run: |
          claude --execute "
            1. 审查 PR 中的所有变更
            2. 识别潜在的问题和安全漏洞
            3. 给出改进建议
            4. 生成审查报告
          " --exit
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

自动 Bug 修复

# .github/workflows/auto-fix.yml
name: Auto Fix

on:
  schedule:
    - cron: "0 6 * * 1"  # 每周一早上 6 点

jobs:
  auto-fix:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Auto Fix Issues
        run: |
          claude --execute "
            1. 运行 lint 检查
            2. 自动修复所有可修复的问题
            3. 更新过时的依赖
            4. 修复已知的安全漏洞
          " --exit

      - name: Create PR
        uses: peter-evans/create-pull-request@v6
        with:
          title: "chore: 自动修复代码问题"
          body: "Codex 自动修复的代码问题"

测试更新自动化

# .github/workflows/update-tests.yml
name: Update Tests

on:
  pull_request:
    paths:
      - "src/**/*.ts"
      - "!src/**/*.test.ts"

jobs:
  update-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Update Tests
        run: |
          claude --execute "
            1. 分析 src/ 目录下新增和修改的代码
            2. 为新增的函数和组件编写测试
            3. 更新已有测试以适应代码变更
            4. 运行测试确保全部通过
          " --exit

自动化代码审查

审查规则配置

{
  "review": {
    "rules": {
      "security": ["sql-injection", "xss", "csrf", "auth"],
      "performance": ["memory-leak", "unnecessary-render", "bundle-size"],
      "style": ["naming-convention", "code-format", "import-order"],
      "testing": ["missing-tests", "coverage-threshold"]
    },
    "autoApprove": false,
    "commentOnPR": true,
    "severity": {
      "critical": "block",
      "major": "comment",
      "minor": "suggestion"
    }
  }
}

自定义审查提示词

## 代码审查标准

### 必须检查的项目
1. 是否存在安全漏洞(SQL 注入、XSS 等)
2. 是否有性能问题(不必要的循环、内存泄漏)
3. 是否符合项目编码规范
4. 是否有充分的错误处理
5. 测试覆盖率是否达标

### 输出格式
- 分类列出所有发现的问题
- 每个问题标注严重等级
- 给出具体的修复建议
- 提供修复代码示例

批量处理脚本

项目迁移脚本

#!/bin/bash
# migrate-project.sh

claude --execute "
1. 分析当前项目结构和技术栈
2. 制定迁移计划
3. 将项目从 JavaScript 迁移到 TypeScript
4. 添加类型定义
5. 更新配置文件
6. 运行测试确保功能正常
" --exit --max-steps 50

依赖更新脚本

#!/bin/bash
# update-deps.sh

claude --execute "
1. 检查所有过时的依赖
2. 评估更新带来的破坏性变更
3. 逐项更新依赖到最新版本
4. 修复更新导致的兼容性问题
5. 运行完整测试套件
" --exit --max-steps 30

文档生成脚本

#!/bin/bash
# generate-docs.sh

claude --execute "
1. 分析项目的所有 API 路由
2. 为每个路由生成 API 文档
3. 分析组件并生成组件文档
4. 生成 README 和贡献指南
5. 将文档输出到 docs/ 目录
" --exit --max-steps 40

监控与告警集成

日志分析自动化

#!/bin/bash
# analyze-logs.sh

# 分析生产环境日志
curl -s https://logs.example.com/latest.json | \
  claude -p "分析这些日志,找出异常模式、错误趋势和潜在问题" \
  --format json > report.json

# 如果有严重错误,触发告警
if jq -e '.severity == "critical"' report.json > /dev/null; then
  curl -X POST https://hooks.example.com/alert \
    -H "Content-Type: application/json" \
    -d @report.json
fi

最佳实践

  • 分步执行:将复杂任务拆分多个步骤,每步使用 --max-steps 限制
  • 幂等性:确保脚本可以在中断后重新执行而不产生副作用
  • 日志记录:记录所有自动化操作的输出,便于排查问题
  • 灰度发布:先在测试环境运行自动化脚本,确认无误后再应用到生产
  • 人工审核:对关键变更设置人工审核节点