コンテンツにスキップ

GitHub ActionsでClaude Code CLIを活用した自動記事生成パイプライン構築

この記事の対象者

  • GitHub Actionsの基本操作を理解している中級者

この記事のポイント

  1. Claude Code CLIをGitHub Actionsで実行する設定構築
  2. 環境変数とシークレットの適切な管理実装
  3. エラーハンドリングとリトライ戦略の組み込み

なぜこの問題が今重要か

GitHub Actionsワークフローでの生成AI活用事例が増加し、特に定期的なコンテンツ生成や分析タスクの自動化ニーズが高まっています。Claude Code CLIの非対話型実行により、完全自動化されたAIドリブンワークフローが実現可能になりました。

解決ステップ概要

ステップ内容到達指標
1Claude 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'

次に読む(関連1〜2本)