はじめに
「GitHub Actionsを設定したいけどYAMLの書き方がわからない」
「CI/CDのパイプラインを整備したいけど何から始めればいいかわからない」
「既存のワークフローを改善したいが、影響範囲が怖くて触れない」
GitHub ActionsのYAML設定ファイルは、慣れていないと複雑に見えます。Claude Codeに任せることで、プロジェクトの構成を分析した上で最適なCI/CDパイプラインを自動で構築できます。
目次
- Claude CodeとGitHub Actionsの連携概要
- 基本的なCI設定を自動生成する
- テスト自動実行のワークフロー
- デプロイパイプラインの設定
- 既存のワークフローを改善する
- セキュリティ対策の設定
- よく使うワークフローパターン集
- まとめ
1. Claude CodeとGitHub Actionsの連携概要
Claude Codeでできること
Claude Codeは以下の観点からプロジェクトを分析して、最適なGitHub Actionsワークフローを生成します。
- 言語・フレームワークの自動検出:package.json・composer.json・requirements.txtなどから技術スタックを把握
- テストフレームワークの特定:既存のテスト設定から適切なテスト実行コマンドを判断
- デプロイ先の推測:設定ファイルからデプロイ先(Vercel・AWS・GCP等)を判断
基本的な指示の出し方
> このプロジェクトのCI/CDパイプラインをGitHub Actionsで構築してください。
プロジェクトの構成を分析した上で適切な設定ファイルを作成してください。
2. 基本的なCI設定を自動生成する
プロジェクト分析から自動生成
> このプロジェクトのGitHub Actions CIワークフローを作成してください。
要件:
- PRが作成・更新されたときに自動実行
- 依存関係のインストール
- Lintチェック
- テストの実行
- ビルドの確認
.github/workflows/ci.yml として保存してください。
Claude Codeがpackage.jsonやその他の設定ファイルを読んで、以下のようなワークフローを生成します。
name: CI
on:
pull_request:
branches: [main, develop]
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run linter
run: npm run lint
- name: Run tests
run: npm test
- name: Build
run: npm run build
3. テスト自動実行のワークフロー
カバレッジレポート付きテスト
> テストを実行してカバレッジレポートをGitHub ActionsのSummaryに表示する
ワークフローを作成してください。
カバレッジが80%を下回った場合はワークフローを失敗させてください。
複数環境でのマトリックステスト
> 以下の複数環境でテストを実行するワークフローを作成してください:
OS:ubuntu-latest, windows-latest, macos-latest
Pythonバージョン:3.10, 3.11, 3.12
すべての組み合わせでテストが通ることを確認してください。
4. デプロイパイプラインの設定
Vercelへの自動デプロイ
> mainブランチへのpush時にVercelへ自動デプロイする
ワークフローを作成してください。
条件:
- テストがすべて通った場合のみデプロイ
- デプロイ完了後にSlackに通知
- デプロイが失敗した場合は自動でロールバック
AWS ECSへのデプロイ
> mainブランチへのpush時にAWS ECSへデプロイするワークフローを作成してください。
手順:
1. Dockerイメージをビルド
2. ECRにプッシュ
3. ECSタスク定義を更新
4. ECSサービスを更新
必要なAWS認証はGitHub Secretsから取得すること。
ステージング・本番環境の分岐デプロイ
> 以下のデプロイ戦略を設定してください:
- developブランチへのpush → ステージング環境にデプロイ
- mainブランチへのpush → 本番環境にデプロイ(承認制)
- 本番デプロイは指定したレビュアーの承認後に実行
5. 既存のワークフローを改善する
実行時間の短縮
> .github/workflows/ci.ymlを分析して、実行時間を短縮する改善案を提示してください。
キャッシュの活用、並列実行、不要なステップの削除などを検討してください。
改善後の推定実行時間も教えてください。
フラッキーなテストの対応
> CIで稀に失敗するフラッキーなテストがあります。
リトライの仕組みをワークフローに追加してください。
また、フラッキーなテストを検出する仕組みも追加してください。
依存関係のキャッシュ最適化
> 現在のワークフローでdependenciesのインストールに5分かかっています。
キャッシュを適切に設定して、キャッシュヒット時は30秒以内に完了するよう改善してください。
6. セキュリティ対策の設定
シークレットの適切な管理
> 現在のワークフローを確認して、シークレット管理上の問題点を指摘してください。
APIキーやパスワードが安全に扱われているか確認してください。
依存関係の脆弱性スキャン
> PRが作成されたときに依存関係の脆弱性チェックを実行する
ワークフローを追加してください。
Snyk またはnpm auditを使用してください。
重大な脆弱性が見つかった場合はPRをブロックしてください。
コードスキャンの設定
> GitHub Code Scanningを有効にして、
CodeQLによる静的解析をCI/CDに組み込んでください。
JavaScriptとTypeScriptの解析ルールを適用してください。
7. よく使うワークフローパターン集
パターン① 自動バージョニング・リリース
> mainブランチへのpush時に、コミットメッセージの接頭辞に応じて
自動でバージョンを上げてGitHubリリースを作成するワークフローを作成してください。
ルール:
- feat: → マイナーバージョンアップ
- fix: → パッチバージョンアップ
- breaking: → メジャーバージョンアップ
パターン② PRサイズチェック
> PRの変更行数が500行を超えた場合に警告を表示するワークフローを作成してください。
大きすぎるPRは分割を促すコメントを自動投稿してください。
パターン③ 定期的なメンテナンス
> 毎週月曜日の朝9時に以下を実行するワークフローを作成してください:
- 依存関係の更新チェック(dependabotがない場合)
- 古いブランチの検出と通知
- セキュリティ脆弱性のスキャン
- 結果をSlackに通知
8. まとめ
Claude CodeでGitHub Actionsを使うメリット:
- プロジェクトを分析して最適なYAMLを自動生成
- YAMLの文法ミスや設定漏れを自律的に修正
- 既存ワークフローの改善提案と実装
主要なユースケース:
- PR時のCI(Lint・テスト・ビルド)
- 自動デプロイ(Vercel・AWS・GCP)
- セキュリティスキャン
- 自動リリース
設定のポイント:
- シークレットはGitHub Secretsで管理する
- キャッシュを活用して実行時間を短縮する
- ステージング・本番環境で異なる設定を使い分ける
次回の第15回:リファクタリングする方法では、Claude Codeでレガシーコードを安全にリファクタリングする方法を解説します。
よくある質問(FAQ)
Q. 生成されたワークフローが正しく動作するか確認する方法はありますか?
A. act というツールを使うとGitHub Actionsをローカルで実行してテストできます。Claude Codeに「actを使ってこのワークフローをローカルでテストして」と依頼することもできます。
Q. ワークフローの実行コスト(GitHub Actionsの課金)を抑えるには?
A. Claude Codeに「このワークフローを分析して、実行コストを最小化する改善案を提示して」と依頼することで、不要なステップの削除・キャッシュの最適化・実行条件の絞り込みを提案してくれます。
この記事はClaude Code入門シリーズ(第2部)の第14回です。← 第13回:コードレビュー自動化 | 第15回:リファクタリング →
ご質問はお問い合わせページからお気軽にどうぞ。