把 Codex 接进 CI 时,永远使用 exec 模式,固定权限与输出。

CI/CD 与 GitHub Action

CI 自动化的核心是「确定性」。Codex 在 CI 里必须像一个普通脚本一样输入清晰、输出可解析。

非交互任务

  • codex exec 模式。
  • 固定 --ask-for-approval never
  • 使用最小权限 profile。
  • 固定输出文件路径。

GitHub Action 示例

- name: Run Codex review
  env:
    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
  run: |
    codex exec \
      --ask-for-approval never \
      -c sandbox=":workspace" \
      "请审查本次 PR diff,按清单输出 markdown 报告到 reports/review.md"

失败处理

  • 失败时输出日志和建议。
  • 不自动重试危险操作。
  • 把 Codex 输出当作建议,不作为门禁的唯一依据。