コラム Claude Code入門 更新:

Claude CodeでGitHub Actionsを設定する方法!CI/CDパイプラインを自動構築する手順

Claude CodeでGitHub Actionsを設定する方法!CI/CDパイプラインを自動構築する手順
目次 (28項目)
  1. 1. はじめに
  2. 2. 目次
  3. 3. 1. Claude CodeとGitHub Actionsの連携概要
  4. Claude Codeでできること
  5. 基本的な指示の出し方
  6. 4. 2. 基本的なCI設定を自動生成する
  7. プロジェクト分析から自動生成
  8. 5. 3. テスト自動実行のワークフロー
  9. カバレッジレポート付きテスト
  10. 複数環境でのマトリックステスト
  11. 6. 4. デプロイパイプラインの設定
  12. Vercelへの自動デプロイ
  13. AWS ECSへのデプロイ
  14. ステージング・本番環境の分岐デプロイ
  15. 7. 5. 既存のワークフローを改善する
  16. 実行時間の短縮
  17. フラッキーなテストの対応
  18. 依存関係のキャッシュ最適化
  19. 8. 6. セキュリティ対策の設定
  20. シークレットの適切な管理
  21. 依存関係の脆弱性スキャン
  22. コードスキャンの設定
  23. 9. 7. よく使うワークフローパターン集
  24. パターン① 自動バージョニング・リリース
  25. パターン② PRサイズチェック
  26. パターン③ 定期的なメンテナンス
  27. 10. 8. まとめ
  28. 11. よくある質問(FAQ)

はじめに

「GitHub Actionsを設定したいけどYAMLの書き方がわからない」

「CI/CDのパイプラインを整備したいけど何から始めればいいかわからない」

「既存のワークフローを改善したいが、影響範囲が怖くて触れない」

GitHub ActionsのYAML設定ファイルは、慣れていないと複雑に見えます。Claude Codeに任せることで、プロジェクトの構成を分析した上で最適なCI/CDパイプラインを自動で構築できます。

目次

  1. Claude CodeとGitHub Actionsの連携概要
  2. 基本的なCI設定を自動生成する
  3. テスト自動実行のワークフロー
  4. デプロイパイプラインの設定
  5. 既存のワークフローを改善する
  6. セキュリティ対策の設定
  7. よく使うワークフローパターン集
  8. まとめ

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回:リファクタリング →

ご質問はお問い合わせページからお気軽にどうぞ。

著者:R-LLM 開発者

フォロー

Webエンジニアとして10年以上のキャリアがあり、現在はWordPressとLLM(大規模言語モデル)の連携、および生成AIを活用した課題解決のための開発に日々取り組んでいます。

私の信条は、クライアントに寄り添った伴走支援と、最後まで責任を持ってやり遂げる「遂行力」です。これまでの膨大なトライ&エラーの蓄積により、自身の領域内であれば不具合も迅速に解決できる現場の知見を積み上げてきました。

このブログでは、一人のエンジニアとして私自身がAI技術に抱いている純粋な興味をベースに、日々の探求プロセスを発信しています。

生成AILLMをどのように実務に組み込み、価値へ繋げていくか。自身の検証結果だけでなく、実務者としての視点に基づいた「考察や推察」も含めて共有することで、同じように試行錯誤を続ける方々と知見を繋げていければと考えています。

関連記事

SHARE Xでシェア
← 前の投稿
投稿一覧に戻る
次の投稿 →