AIを活用したコーディングツールは、開発者の働き方を変えつつあります。Claude Codeのようなツールは、自然な会話を通じて関数の作成、コードのリファクタリング、機能の構築を行えます。自分でタイプするよりも速いことも少なくありません。しかし、スピードにはスピードなりのリスクが伴います。AIが生成したコードには、微妙なバグが含まれていたり、存在しないパッケージを参照していたり、実行時にしか表面化しない形でAPIを誤用していたりすることがあります。
そこで継続的インテグレーション(CI)の出番です。CIは、自信を持ってスピーディに進むためのセーフティネットです。AIコーディングアシスタントと自動テスト・検証を組み合わせれば、迅速な開発と確実な検証という両方のメリットを手に入れることができます。
このチュートリアルでは、Claude Codeのセットアップ、CircleCIとの接続、そしてAIが生成したコードを自動的に検証するワークフローの構築手順を紹介します。セットアップ全体はわずか数分で完了します。一度設定すれば、CIパイプラインが本番環境に到達する前に問題を検出してくれるため、安心して素早くイテレーションを回せるようになります。
必要なもの
始める前に、以下のものを準備してください:
- CircleCIアカウント(無料プランで十分です)
- GitHubアカウント
- デモプロジェクトのテストをローカルマシンで実行する場合は、Node.js 20 以上(Node.js 22 LTS推奨)。CircleCIとの連携自体にはNode.jsは不要です
- Claude Code がインストール済みで動作すること。Claude Codeを使うには対象のClaudeプラン(Pro、Max、Team、Enterprise、またはConsole APIアカウント)が必要です。無料のClaude.aiプランには含まれていません
- CircleCI CLI(インストールと認証が最初のステップです)
Claude Codeの概要
Claude Codeは、Anthropicが提供するコマンドラインツールで、ターミナルから直接Claudeを使えるようにするものです。エディタ、チャット画面、各種ダッシュボードを切り替える必要がなく、すでに作業している場所でClaudeと対話できます。
Claude CodeがCI/CDワークフローで特に強力なのは、すでに使っているコマンドラインツールと連携できる点です。ターミナルで実行できるものなら何でもClaudeが代わりに実行し、その出力を読み取って対応できます。つまり、ClaudeとパイプラインをつなぐのはCircleCIと通信できるCLIだけです。このチュートリアルでそのCLIをインストールすれば、あとはClaudeがビルドログの取得、パイプラインのトリガー、テスト失敗の分析を代行してくれます。
Claude Codeをインストールするには、ネイティブインストーラーを実行します:
curl -fsSL https://claude.ai/install.sh | bash
Windowsの場合は、PowerShellで irm https://claude.ai/install.ps1 | iex を実行してください。
インストール後、claude を実行して起動します。Anthropicアカウントで認証すれば、準備完了です。
AI支援開発にCIが必要な理由
AIコーディングアシスタントは強力ですが、完璧ではありません。以下のような問題が発生する可能性があります:
存在しない依存関係の参照: AIモデルは、存在しないパッケージや古くなったパッケージ名を参照することがあります。コードは問題なさそうに見えても、CIで npm install が失敗します。
APIの誤った使用: モデルがAPIメソッドを間違ったシグネチャで使ったり、引数の順序を間違えたり、非推奨の関数を呼び出したりすることがあります。見た目は正しくても、実行時に失敗します。
エッジケースの見落とし: AIが生成したコードは正常系の処理は得意ですが、nullチェック、エラーハンドリング、境界条件の処理を見落とすことがあります。これらはテストで検出できます。
セキュリティの脆弱性: 注意深いプロンプトなしでは、AIがSQLインジェクションのリスク、不適切な入力バリデーション、その他のセキュリティ上の問題を含むコードを生成する可能性があります。自動スキャンでこれらを検出できます。
インテグレーションの不整合: 単体では動作するコードでも、システムの他の部分と連携するときに壊れることがあります。CIで実行されるインテグレーションテストだけが、これらの問題を表面化させます。
解決策は、AIツールの使用を避けることではなく、その出力を自動的に検証することです。変更のたびにテスト、リンター、セキュリティスキャンを実行するCIパイプラインがあれば、AIの提案を自信を持って受け入れられます。何か問題があれば、数分以内にわかります。
CircleCIを始める
まだCIを設定していない場合、CircleCIなら簡単に始められます。手順の概要は以下の通りです:
- サインアップ: circleci.com でGitHub、Bitbucket、またはGitLabアカウントを使って登録します
- プロジェクトを作成: CircleCIダッシュボードから新しいプロジェクトを作成し、プロンプトに従ってリポジトリを接続します
- 設定ファイルを追加: リポジトリの
.circleci/config.ymlに設定ファイルを配置します
最小限の設定は以下のようになります:
version: 2.1
jobs:
build-and-test:
docker:
- image: cimg/node:22.23
steps:
- checkout
- run: npm install
- run: npm test
workflows:
main:
jobs:
- build-and-test
このファイルをプッシュすると、CircleCIがすべてのコミットで自動的にパイプラインを実行するようになります。
詳しいセットアップ手順、言語別の例、高度な設定オプションについては、CircleCIクイックスタートガイドをご覧ください。
CircleCIプロジェクトの準備
このチュートリアルを有効に活用するには、CI/CDの実行履歴があるプロジェクトが必要です。ビルドの実行結果、失敗したビルド、実行されたテストなどがあると理想的です。デモリポジトリをフォークするか、すでに作業中のプロジェクトを使うことができます。
デモリポジトリをフォークする
手軽に手順を追いたい場合は、CircleCIが設定済みのNode.jsデータ処理デモをフォークしてください:
- github.com/CIRCLECI-GWP/chunk-dataforge-demo にアクセスし、自分のアカウントにフォークします
- CircleCI にアクセスし、Projects を開きます
- フォークしたリポジトリを見つけて Create Project をクリックし、プロンプトに従って接続します(CircleCIが既存の
.circleci/config.ymlを自動検出します) - CircleCIに初回のパイプラインを実行させます
既存のプロジェクトを使う
すでにCircleCIで実行中のプロジェクトがある場合、そのまま使えます。以下の点を確認してください:
- リポジトリに
.circleci/config.ymlが存在すること - プロジェクトが接続されていて、CircleCIダッシュボードで確認できること
- クエリ可能なパイプラインの実行履歴がいくつかあること
CircleCI CLIのセットアップ
CircleCIのコマンドラインツールは、エージェントフレンドリーなCLIとして設計されています。CI実行、ジョブ、設定をすでに作業しているターミナルに持ち込みます。Claude Codeとの相性が良いのは、あなたが使うのと同じようにClaude Codeがこのツールを実行できるからです。
CLIをインストールする
macOSまたはLinuxでHomebrewを使う場合:
brew install circleci
WinGet、Snap、Debian、RPMパッケージも利用可能です。各パッケージの詳細はCLIインストール手順を参照してください。
ログインする
CLIをCircleCIアカウントで認証します:
circleci auth login
このコマンドでブラウザに認証ページが開きます。リクエストを承認すると、CLIがトークンをシステムキーリングに保存し、以降のすべてのコマンドでそれを使用します。APIトークンを作成、コピー、貼り付けする必要はありません。まだCircleCIアカウントをお持ちでない場合は、circleci auth signup で同じ場所から始められます。
動作確認をしましょう:
circleci run get
このコマンドは、現在のプロジェクトとブランチの最新の実行ステータスを表示します。これが表示されれば、CLIのインストール、認証、リポジトリへの接続がすべて完了しています。
Claude Codeから使えることを確認する
Claude Code側で特別な設定は不要です。CLIは PATH 上にあるので、Claudeは他のコマンドと同様に実行できます。プロジェクト内でClaude Codeを起動し、以下のように聞いてみてください:
What CircleCI projects am I following?
Claudeが circleci project list を実行し、結果を報告します。プロジェクトが表示されれば、すべてが正しく接続されています。
Claudeが初めてCLIを使おうとするとき、Claude Codeが実行の許可を求めます。セッション中に一度許可するか、許可ツールに circleci を追加しておけば、以降は確認されません。
このコマンドインターフェースは、CLIがModel Context Protocol経由で提供できるものと同じです。circleci mcp start でCLIをMCPサーバーとして実行し、circleci mcp tools でツールとして公開されるコマンドを確認できます。MCPサーバーを想定するエディタに接続する場合はこの方法を使います。circleci run get --failure-report のようなコマンドがエージェント向けに設計されているのもそのためです。Claude Codeは直接CLIを実行できるため、このレイヤーは不要です。
パイプライン設定の検証
では、この連携を実際に活用してみましょう。最もすぐに役立つのは、変更をプッシュする前にCircleCIの設定を検証することです。コミット後に構文エラーを発見する必要はもうありません。
以下のように聞いてみてください:
Check if my CircleCI configuration is valid
Claudeが .circleci/config.yml に対して circleci config validate を実行し、見つかった問題を報告します。行番号付きの具体的なエラーメッセージ、潜在的な問題の警告、改善の提案が得られます。
これは、複雑なパイプラインを変更したり、新しいOrbを試したりするときに特に有用です。ビルド失敗というコストを払う前にミスを発見できます。
ターミナルからビルドをトリガーする
想像以上に時間を節約できるのが、ターミナルを離れずにパイプラインの実行を開始できることです。CircleCIに移動してプロジェクトを見つけ、UIをクリックする代わりに、こう聞くだけです:
Start a pipeline for my current branch
Claudeが circleci run trigger を実行します。Gitリモートとブランチが自動的に検出され、実行状況を監視するためのリンクが提供されます。
別のブランチを指定することもできます:
Run the pipeline for the staging branch
修正を繰り返しながらパイプラインを何度も実行する必要があるとき、ターミナルにとどまることで集中力を保てます。
ビルド失敗の調査
この連携が本当に価値を発揮するのはここです。何かが壊れたとき、ログを探し回るのではなく、答えがほしいはずです。
Claudeに聞いてみてください:
What happened in my last failed build?
Claudeが失敗ログを取得し、何が問題だったかを分析します。どのジョブが失敗したか、どのステップが原因か、実際のエラー出力、周辺ステップの関連するコンテキストが確認できます。
しかしClaudeはエラーを表示するだけではありません。失敗を分析し、修正方法を提案します。すでにターミナルにいてコードがすぐそこにあるので、すぐに修正に取りかかれます。
フィードバックループを構築する
さらに一歩進めて、Claudeにサイクル全体を任せることもできます:
Fix that issue and run the pipeline again. Let me know when it passes.
Claudeがコードを変更し、コミットし、新しいビルドをトリガーし、結果を報告します。別の問題が発生した場合は、すべてが通るまでイテレーションを続けられます。コンテキストを切り替える必要は一切ありません。
CircleCI UIの失敗したビルドから始める
CircleCIから直接Claudeに失敗を渡すこともできます。CircleCIのWebアプリで失敗したパイプラインを開き、失敗したワークフローの修正メニューを開きます。Open in Claude Code でセッションが開始され、Copy Fix Prompt ですぐに使えるプロンプトがクリップボードにコピーされます。
プロンプトには、失敗したパイプラインの名前とその内容を説明するコマンドが含まれています:
Check out branch main. Pipeline ce7801ac-25e8-483c-9e00-ed9bb534f343 failed; run "circleci run get ce7801ac-25e8-483c-9e00-ed9bb534f343 --failure-report"
to see the failed steps.
Review the output, identify the root cause(s), and fix the code so the pipeline passes.
これをClaude Codeに貼り付けると、Claudeがすべての失敗ステップの要約レポートを取得し、そこから修正に取りかかります。ダッシュボードを開かなくても、直接このレポートを要求できます:
Show me the failure report for the last failed run on main
テスト結果の分析
テストが失敗したとき、どのテストが失敗したか、アサーションの内容、コード内のどこで失敗が発生したかを正確に把握する必要があります。
Claudeに聞いてみてください:
What were the test results from my last pipeline?
Claudeが circleci testresult list を実行し、内訳を示します。テスト名とファイルの場所、合格・不合格のステータス、スタックトレース付きの失敗メッセージ、遅いテストを示す可能性のあるタイミングデータが確認できます。
うまくいかないとき
ClaudeがCLIを実行できない場合
Claudeがコマンドが利用できないと報告した場合:
- CLIがインストールされていて
PATH上にあることを確認します:circleci version。Claude Codeはcircleciをサブプロセスとして実行するため、シェルがバイナリを見つけられなければ、Claudeも見つけられません - まだ開いているシェルセッションでインストールした場合は、更新された
PATHを反映するために新しいセッションを開始してください circleci auth meでまだサインインしていることを確認し、サインインしていなければcircleci auth loginを再実行してください- Claude Codeが確認を求めたときにコマンドを許可したか確認してください。拒否した場合、Claudeはセッションの残りの間、再試行を避けます
プロジェクトが認識されない場合
Claudeがプロジェクトを見つけられない場合:
- CircleCIダッシュボードにプロジェクトが表示されていることを確認します
- Gitリモートを確認します:
git remote -v - CircleCIアカウントがプロジェクトへのアクセス権を持っていることを確認します
- プロジェクトを明示的に指定します:
Get build status for gh/my-username/my-repo
認証エラーの場合
認証エラーが発生している場合:
circleci auth meを実行して、CLIのセッションがまだ有効であることを確認します- 有効でない場合は、
circleci auth loginを再実行してセッションを更新します - ブラウザが利用できないヘッドレスマシンの場合は、代わりに
CIRCLE_TOKEN環境変数にパーソナルAPIトークンを設定してください
まとめ
AIコーディングツールを使えば、これまでにないスピードで開発できます。しかし、検証なきスピードは、バグをより速く出荷する方法でしかありません。Claude CodeとCircleCIを組み合わせることで、AI支援開発の生産性のメリットと、自動テストによる信頼性を両立できます。
このガイドのセットアップにより、Claudeとの自然な会話を通じてコードを書き、変更が問題を引き起こす前に自動的に検証し、ターミナルを離れずに失敗を診断・修正し、コーディングとテストの間の緊密なフィードバックループで素早くイテレーションを回すことができます。
始め方はとても簡単です。Claude Codeをインストールし、CircleCI CLIをインストールしてログインするだけです。その後は何も接続する必要はありません。AIが生成したバグが本番環境に到達する前に検出できるたびに、ブラウザを開かずに失敗したビルドを修正できるたびに、この投資はすぐに回収されます。
試してみませんか? CircleCIの無料アカウントに登録して、自信を持って開発を始めましょう。