Codex 自动化与 CI/CD

把 Codex 从「我盯着它干」变成「它自己定时干 / 在流水线里干」。本章覆盖两条路:桌面应用的 Automations(自动化)非交互 codex exec 在 CI/CD 中的用法。


一、桌面应用 Automations

Automations 让你定时跑 Codex 任务:有发现就进收件箱(Triage),没事就自动归档,帮你在无人值守时维护项目。

创建方式(三选一)

  1. 表单:侧边栏 Automations → 填写计划 + 提示词
  2. 对话:在普通线程里描述任务与频率,Codex 帮你起草并配置
  3. Skill:用 Skill 以编程方式创建/更新自动化

两种类型

类型行为适合
独立自动化按计划全新启动,结果进 Triage独立运行、跨多个项目
线程自动化挂在某对话上的「心跳式」唤醒,保留线程上下文轮询服务、监控长命令、跨次保持状态

Git 仓库的运行位置

选项含义
本地项目直接在主工作区跑,可能改到你正在编辑的文件
新 Worktree每次运行用独立 worktree,改动与本地工作隔离

非版本控制的目录直接在项目目录运行。

计划(Schedule)

  • 分钟级(用于活跃的跟进循环)
  • 每日 / 每周固定时间
  • 自定义 cron 表达式

模型与权限

  • 可保留默认,或显式指定模型与推理强度
  • 自动化遵守你的沙箱设置
    • read-only:需要改文件/联网/操作应用的调用会失败
    • workspace-write:仅限工作区,联网/外部应用默认拦截(除非用规则 allowlist)
    • full access:风险高,可能无提示地改文件、跑命令
  • 托管环境可由管理员策略进一步收紧

上线前自检

  • 先在普通线程手动跑一遍提示词,确认清晰度与输出质量
  • 审查首批自动化结果再调整
  • worktree 清理:不再需要的运行及时归档,避免无谓占用

示例用途

  • Skill 自我改进:扫描会话日志、找出有问题的 Skill 并优化
  • 项目简报:每天生成涉及某目录提交的高管摘要
  • 主动修 bug:用专用 Skill 自动发现并修复你近期改动引入的 bug

二、非交互模式 codex exec

codex exec(别名 codex e)在无 TUI 下跑一次性任务,是脚本与 CI 的基础:

codex exec "运行 npm test 并修复失败用例,不要改 package.json"

CI 友好组合:

codex exec \
  --sandbox workspace-write \
  --ask-for-approval never \
  --json \
  --output-last-message \
  "根据 PR diff 生成 changelog 条目"
标志作用
--ask-for-approval never不弹审批(无人值守)
--sandbox限定可写范围
--json机器可读输出
--output-last-message打印最终自然语言摘要

在 CI 用 never 审批时,务必配合严格沙箱与只读 checkout,避免误改仓库。更多 CLI 细节见 命令行工具


三、CI/CD 集成示例

GitHub Actions:生成 Release Notes

# .github/workflows/release-notes.yml(示意)
- name: Codex release notes
  env:
    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
  run: |
    codex exec \
      --sandbox read-only \
      --ask-for-approval never \
      --output-last-message \
      "根据 git log $(git describe --tags --abbrev=0)..HEAD 生成用户向 changelog,Markdown 格式" \
      > RELEASE_NOTES.md

可复用脚本骨架

#!/usr/bin/env bash
set -euo pipefail
export CODEX_HOME="$HOME/.codex-ci"   # 隔离 CI 机器人配置
codex exec \
  --sandbox workspace-write \
  --ask-for-approval never \
  --json --output-last-message \
  "运行 go test ./... 并仅修复测试失败,不改 go.mod"

四、与 Cloud / @codex 的关系

  • Cloud 可在 GitHub 上由 @codex 评论触发异步任务并产 PR,本质也是「自动化的远程编排」
  • 团队把审查/构建规则写进 AGENTS.md,让 Automations、CI、Cloud、CLI 同源,避免环境漂移

详见 云端版本


下一步