- Codex CLIをGitHub Actionsに統合してPRごとに自動レビュー・テスト生成が可能
- APIキーはGitHub Secretsで安全に管理し、コスト上限も設定
- Jenkins・GitLab CIでも同様のパターンで応用できる
「Codex CLIをローカルで使ってるけど、CI/CDに組み込めたら最高なのに」と思ったことはありませんか?
この記事では、OpenAI Codex CLI完全攻略シリーズ第12弾として、GitHub ActionsとCodex CLIを連携させたCI/CDパイプラインの構築方法を、実装コード付きで解説します。
- Codex CLIをCI/CDに組み込むメリット
- GitHub Actionsでの具体的なワークフロー設定
- PRごとの自動コードレビュー・テスト生成の実装
- セキュリティとコスト管理の注意点
- Jenkins・GitLab CIへの応用方法
Codex CLIをCI/CDに組み込むメリット
Codex CLIをCI/CDパイプラインに組み込むことで、以下の自動化が実現できます。
1. PRごとの自動コードレビュー
- 変更差分を解析し、バグの可能性やコード品質の問題を自動検出
- レビュアーの負担を軽減し、レビュー待ちのボトルネックを解消
2. テストコードの自動生成
- 変更されたコードに対応するユニットテストを自動生成
- テストカバレッジの維持・向上を自動化
3. 変更ログ・コミットメッセージの検証
- Conventional Commitsへの準拠チェック
- リリースノートの自動生成
4. ドキュメントの自動更新
- APIドキュメントの変更検知と自動更新提案
- READMEの更新漏れ検出
Codex CLI入門ガイドでCodex CLIの基本を押さえた上で、CI/CD連携に進みましょう。
前提環境とAPIキーのセキュア管理
必要な環境
- GitHub リポジトリ(GitHub Actions有効)
- OpenAI APIキー(GPT-4o以上推奨)
- Node.js 18以上
- Codex CLI v1.x以上
APIキーのセキュア管理
絶対にやってはいけないこと:
.envファイルにAPIキーを書いてコミット- ワークフローYAMLに直接APIキーを記述
推奨する管理方法:
- GitHub リポジトリの Settings → Secrets and variables → Actions に移動
OPENAI_API_KEYという名前でシークレットを作成- ワークフロー内で
${{ secrets.OPENAI_API_KEY }}として参照
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
Codex CLIのセキュリティ管理でも解説していますが、APIキーのローテーションも定期的に行いましょう。
GitHub Actionsワークフロー設定例
PRごとの自動コードレビュー
PRが作成・更新されたときに、Codex CLIで変更差分を自動レビューするワークフローです。
name: AI Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
ai-review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: '22'
- name: Install Codex CLI
run: npm install -g @openai/codex-cli
- name: Get diff
id: diff
run: |
DIFF=$(git diff origin/${{ github.base_ref }}...HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx')
echo "diff<<EOF" >> $GITHUB_OUTPUT
echo "$DIFF" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: AI Review
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
codex --quiet --mode review \
--prompt "以下の差分をレビューしてください。バグ、パフォーマンス問題、セキュリティリスクを指摘し、改善提案をしてください。" \
--input "${{ steps.diff.outputs.diff }}" \
--output /tmp/review.md
- name: Post Review Comment
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const review = fs.readFileSync('/tmp/review.md', 'utf8');
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: `## 🤖 AI Code Review\n\n${review}`
});
テストコード自動生成ステップ
変更されたファイルに対応するテストを自動生成し、PRにコミットするワークフローです。
- name: Generate Tests
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD -- 'src/**/*.ts')
for file in $CHANGED_FILES; do
test_file="${file%.ts}.test.ts"
if [ ! -f "$test_file" ]; then
codex --quiet --mode generate \
--prompt "このファイルのユニットテストをJest + TypeScriptで生成してください" \
--input "$file" \
--output "$test_file"
fi
done
変更ログ・コミットメッセージ検証
- name: Validate Commit Messages
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
COMMITS=$(git log origin/${{ github.base_ref }}...HEAD --pretty=format:"%s")
codex --quiet --mode validate \
--prompt "以下のコミットメッセージがConventional Commitsに準拠しているか検証し、不備があれば修正案を提示してください" \
--input "$COMMITS" \
--output /tmp/commit-validation.md

セキュリティとコスト管理の注意点
CI/CDにAIを組み込む際、セキュリティとコストの両面で注意が必要です。
セキュリティ:
- Fork PRのリスク: フォークからのPRではSecretsが利用できない設定がデフォルト。
pull_request_targetの使用は慎重に - プロンプトインジェクション: コード内にAIへの指示を仕込むことが理論上可能。信頼できないコードの解析には注意
- APIキーの権限: 最小権限の原則に従い、CI/CD用のAPIキーは読み取り専用の操作に限定
コスト管理:
| 操作 | 概算コスト(GPT-4o) | 月間目安(20PR/週) |
|---|---|---|
| コードレビュー | $0.05〜0.20/PR | $4〜16/月 |
| テスト生成 | $0.10〜0.50/ファイル | $8〜40/月 |
| 変更ログ検証 | $0.01〜0.05/PR | $0.8〜4/月 |
コスト上限の設定:
OpenAIダッシュボードで月額上限を設定するだけでなく、ワークフロー内でもトークン数を制限できます。
- name: AI Review (Cost Limited)
run: |
codex --quiet --mode review \
--max-tokens 2000 \
--model gpt-4o-mini \
--input "${{ steps.diff.outputs.diff }}"
Codex CLIのテスト自動化と組み合わせることで、より包括的なCI/CDパイプラインが構築できます。
Jenkins / GitLab CIでの応用
GitHub Actions以外のCI/CDツールでも同様のパターンが使えます。
Jenkins(Jenkinsfile):
pipeline {
agent any
environment {
OPENAI_API_KEY = credentials('openai-api-key')
}
stages {
stage('AI Review') {
steps {
sh '''
npm install -g @openai/codex-cli
git diff HEAD~1 -- '*.ts' | codex --quiet --mode review \
--prompt "コードレビューを行ってください" \
--output review.md
'''
}
}
}
}
GitLab CI(.gitlab-ci.yml):
ai-review:
stage: test
image: node:22
variables:
OPENAI_API_KEY: $OPENAI_API_KEY
script:
- npm install -g @openai/codex-cli
- git diff HEAD~1 -- '*.ts' | codex --quiet --mode review --output review.md
- cat review.md
only:
- merge_requests
Codex CLIのコードレビューで解説しているレビューのカスタマイズテクニックは、CI/CD環境でもそのまま活用できます。
まとめ:AI駆動CI/CDの導入ステップ
Codex CLIをCI/CDに統合する際の推奨ステップは以下の通りです。
- まずはコードレビューから: リスクが低く効果が見えやすい
- テスト生成を追加: カバレッジ向上で品質が安定する
- コスト監視を設定: 月額上限とトークン制限で暴走を防ぐ
- チーム全体へ展開: 効果が確認できたらルール化する
AI駆動のCI/CDは、SES現場でもDevOps推進のアピール材料になります。SES BASEでは、CI/CD・DevOps経験が活きる案件を多数掲載しています。SES BASEで案件を探す!