实战 A4:Codex 自动化与 CI/CD 集成——让 AI 7x24 小时守护你的代码

实战教程系列 系列 A:A1 配置实战 | A2 日常开发 | A3 审查与质量 | A4 自动化 CI/CD ← 本文 | A5 大型项目


# Codex 自动化 ## 每日依赖检查 - npm outdated + go list - 安全公告扫描 - Triage 收件箱报告 ## PR 监控 - 新评论自动响应 - CI 失败自动修复 - 工作时段策略 ## Cloud Tasks - 远程执行耗时任务 - 集成测试套件 - 结果 diff 回本地 ## 设计原则 - 独立运行 - 明确收件箱 - 失败即通知 - 成本控制

案例 1:每日依赖检查自动化

场景:每天早上 9:00 自动检查依赖更新和安全公告。

在 Codex App → Automations 面板创建:

名称:Daily Dependency Check
调度:0 9 * * *(每天早上 9:00)
模式:Standalone(独立运行)
Worktree:是(不干扰本地工作)

Prompt:

检查 package.json 和 go.mod 中的依赖更新。

For npm:
- 运行 npm outdated --json
- 对于每个可更新的包,检查 CHANGELOG 中是否有 breaking changes

For Go:
- 运行 go list -u -m all
- 对于每个可更新的模块,检查是否有安全公告

汇总:
- 安全的 patch 更新:自动创建 PR
- minor 更新:列出变更,标记需要人工审查
- major 更新:列出 breaking changes
- 安全漏洞:高亮标记,附 CVE 编号

每天早上,Triage 收件箱中出现一份依赖健康报告。


案例 2:PR 监控自动化——新评论自动响应

场景:当你的 PR 收到新的 review 评论时,自动分析是否需要代码修改。

名称:PR Review Monitor
调度:*/30 * * * *(每 30 分钟)
模式:Thread Automation(保持上下文)

Prompt:

检查我的 open PR 列表(通过 GitHub 插件)。

对于每个 PR:
1. 检查是否有新的 review 评论
2. 如果有新评论,分析评论内容:
   - 如果是代码修改建议:评估是否合理,合理的自动修改并回复
   - 如果是问题:回答或请求澄清
   - 如果是 approve:报告状态
3. 如果 CI 失败:分析日志,尝试修复

约束:
- 只修改自己提交的 PR
- 任何有风险的操作(merge、force push)需要先通知我
- 在工作时间(9:00-18:00)内高频检查,其他时间每小时一次

案例 3:Cloud Tasks 远程执行

场景:你有一个耗时 30 分钟的集成测试套件,不想在本地等。

# 提交代码后,从 CLI 提交 Cloud Task
codex cloud exec --env full-test-env "
拉取最新代码。
运行完整集成测试套件:docker compose -f docker-compose.test.yml up --abort-on-container-exit
报告测试结果。如果有失败,列出失败用例和日志。
"

然后在本地继续开发。测试完成后,结果会出现在 App 的 Cloud Tasks 面板中。如果测试通过,再用 codex apply 把结果 diff(如果有自动修复)应用到本地。


Automation 设计原则

flowchart LR A[Codex Automations] --> B[每日依赖检查] A --> C[PR 监控] A --> D[Cloud Tasks] B --> E[Triage 收件箱] C --> E D --> E E --> F[开发者处理] B -.->|cron 调度| B C -.->|定时轮询| C D -.->|手动提交| D
  1. 独立运行:每个自动化应该可以独立完成,不依赖其他自动化的结果
  2. 明确收件箱:用 Triage 的已读/未读状态追踪
  3. 失败即通知:自动化失败时应该主动通知,而不是静默跳过
  4. 成本控制:定时自动化的累积成本可能很大——用轻量模型跑日常检查

下一章:A5: Codex 大型项目实战

实操清单

  • 在 Codex App 的 Automations 面板中创建第一个独立自动化
  • 编写每日依赖检查自动化(npm outdated + go list + 安全公告)
  • 配置 cron 表达式设定合适的执行频率
  • 开启 Worktree 隔离模式(Git 仓库项目)
  • 测试自动化 Prompt:先在普通线程中手动跑一遍
  • 创建 Thread Automation:心跳式监控 PR 状态
  • 提交一个 Cloud Task 执行耗时测试套件
  • 每天早上查看 Triage 收件箱,处理自动化发现