自动化与 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限制 - 幂等性:确保脚本可以在中断后重新执行而不产生副作用
- 日志记录:记录所有自动化操作的输出,便于排查问题
- 灰度发布:先在测试环境运行自动化脚本,确认无误后再应用到生产
- 人工审核:对关键变更设置人工审核节点