GitHub ActionsでClaude Code CLIを活用した自動記事生成パイプライン構築¶
この記事の対象者
- GitHub Actionsの基本操作を理解している中級者
この記事のポイント¶
- Claude Code CLIをGitHub Actionsで実行する設定構築
- 環境変数とシークレットの適切な管理実装
- エラーハンドリングとリトライ戦略の組み込み
なぜこの問題が今重要か¶
GitHub Actionsワークフローでの生成AI活用事例が増加し、特に定期的なコンテンツ生成や分析タスクの自動化ニーズが高まっています。Claude Code CLIの非対話型実行により、完全自動化されたAIドリブンワークフローが実現可能になりました。
解決ステップ概要¶
| ステップ | 内容 | 到達指標 |
|---|---|---|
| 1 | Claude API設定とシークレット登録 | APIキー認証成功 |
| 2 | ワークフローYAML構築 | claude --yesで自動実行 |
| 3 | エラー処理とリトライ実装 | 失敗時の自動復旧 |
ステップ1: Claude API設定とシークレット登録¶
GitHub リポジトリの Settings → Secrets に以下を登録:
ANTHROPIC_API_KEY: sk-ant-api03-xxxxx
環境変数として使用する場合の設定:
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
ステップ2: ワークフローYAML構築¶
.github/workflows/auto-content.ymlの基本構成:
name: Auto Content Generation
on:
schedule:
- cron: '0 21 * * *' # 毎日06:00 JST
workflow_dispatch:
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Claude Code CLI
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
npx -y @anthropic-ai/claude-cli@latest \
--yes \
--max-tokens 8192 \
"GA4データから技術記事を1本生成してください"
ステップ3: エラー処理とリトライ実装¶
堅牢性を高めるリトライ戦略の実装:
- name: Generate with retry
uses: nick-fields/retry@v3
with:
timeout_minutes: 10
max_attempts: 3
retry_wait_seconds: 30
command: |
npx -y @anthropic-ai/claude-cli@latest \
--yes --max-tokens 8192 \
--model claude-3-5-sonnet-20241022 \
"${{ env.PROMPT }}"
よくある落とし穴と対処¶
| 症状 | 原因 | 即時対処 |
|---|---|---|
| APIキーエラー | シークレット名誤り | Settings→Secretsで名前確認 |
| タイムアウト | 処理時間超過 | timeout_minutes: 20に増加 |
| git push失敗 | 権限不足 | permissions: write-all追加 |
詳細設定(高度最適化)
複数プロンプトの並列実行:strategy:
matrix:
task: [morning, noon, evening]
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'