Claude Codeスケジュール実行完全ガイド - GitHub Actions Scheduledで自動化¶
この記事の対象者
- Claude Codeを定期実行したい中級者開発者
この記事のポイント¶
- GitHub Actions scheduledの基本設定方法
- Claude Code APIを使った自動化スクリプトの実装
- 実際に動作するワークフローファイルのコード
問題の核心¶
cronでClaude Codeを定期実行しようとすると、認証管理やエラーハンドリングが複雑になり、メンテナンスが困難になります。GitHub Actions scheduledなら、シークレット管理、ログ管理、エラー通知が統合され、現代的なCI/CDパイプラインで安全に自動化できます。
解決方法¶
ステップ1: GitHub Actionsワークフローファイルを作成¶
.github/workflows/claude-scheduled.ymlを作成し、以下のコードを追加:
name: Claude Code Scheduled
on:
schedule:
- cron: '0 9 * * 1-5' # 平日午前9時
jobs:
claude-automation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Claude automation
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: python scripts/claude_automation.py
ステップ2: 自動化スクリプトの実装¶
scripts/claude_automation.pyを作成し、基本的なClaude API呼び出しを設定:
import os
import anthropic
client = anthropic.Anthropic(api_key=os.getenv('ANTHROPIC_API_KEY'))
def run_daily_analysis():
response = client.messages.create(
model="claude-3-sonnet-20240229",
max_tokens=1000,
messages=[{"role": "user", "content": "今日のタスクを分析してください"}]
)
return response.content
if __name__ == "__main__":
result = run_daily_analysis()
print(result)
ステップ3: シークレット設定とテスト実行¶
GitHubリポジトリ設定でANTHROPICAPIKEYを登録し、手動トリガーで動作確認:
on:
schedule:
- cron: '0 9 * * 1-5'
workflow_dispatch: # 手動実行用
よくあるトラブルと対処法¶
| 症状 | 原因 | 解決策 |
|---|---|---|
| API認証エラー | シークレット設定不備 | Settings > Secrets > ActionsでAPIキー確認 |
| 実行されない | cronタイムゾーン問題 | UTC時間で設定(JST-9時間) |
| ログが見えない | print文が出力されない | print(result, flush=True)を使用 |
詳細設定(上級者向け・クリックで展開)
## 高度なスケジュール設定on:
schedule:
# 毎週月曜9時にレポート生成
- cron: '0 0 * * 1'
# 毎日12時にチェック
- cron: '0 3 * * *'
workflow_dispatch:
inputs:
task_type:
description: 'Task type to run'
required: true
default: 'analysis'
type: choice
options:
- analysis
- report
- cleanup
- name: Notify on failure
if: failure()
uses: 8398a7/action-slack@v3
with:
status: failure
webhook_url: ${{ secrets.SLACK_WEBHOOK }}
次のステップ¶
- Claude Code Hooks完全ガイドでより高度な自動化を学ぶ