こんにちは!日々のコーディング、お疲れ様です。
突然ですが、皆さんは「AIにコードを書いてもらう」こと日常的になりましたか?
今や多くのエンジニアがAIを活用してコードを生成していますが、こんなもどかしさを感じたことはないでしょうか?
「Cursorで完璧に動くコードを書いてもらったけど、これをGitにコミットして、テストして、本番に載せるまでの手順が結局めんどくさい……」
そう、AIによるコード生成がどれだけ爆速になっても、それをビルドし、テストし、デプロイするまでの“最後のラストワンマイル”が手動のままだと、開発のスピード感は半減してしまいます。
今回は、次世代のAI特化型エディタ「Cursor」と、CI/CDの王様「GitHub Actions」を完璧に連携させ、「CursorでAIと対話しながらコードを作り、Gitにプッシュするだけで、自動でテストとデプロイが終わる最強の自動化フロー」の構築方法を、基礎から優しく丁寧に解説していきます。
これをマスターすれば、毎日のコーディングとリリース作業が劇的に楽になりますよ。ぜひ最後までついてきてくださいね!
—
1. そもそも「Cursor × CI/CD」が最強の組み合わせである理由
まず、なぜこの組み合わせが「最強」と言われるのか、その本質を共有させてください。
多くの開発現場では、「コードを書く場所(エディタ)」と「品質を担保する場所(CI)」、「本番に届ける場所(CD)」がバラバラです。そのため、以下のような無駄なコンテキストスイッチ(思考の分断)が発生しています。
1. CursorでAIにコードを書かせる
2. ローカル環境で `npm test` などを手動で叩く(忘れることもある)
3. GitHubにプッシュする
4. 「あ、テスト落ちた!」と気づいてまたCursorに戻る
この非効率なループを断ち切るのが今回のテーマです。
「CursorのAIで高速に実装し、Gitへのプッシュをトリガーに、GitHub Actionsが全自動で品質チェックとデプロイを肩代わりする」。このパイプラインを組むことで、あなたは「コードの価値を考えること」だけに集中できるようになります。
—
2. 開発環境のセットアップと最初の一歩
それでは、実際に手を動かしながら環境を整えていきましょう。今回は、Node.js(TypeScriptなど)の簡単なWebアプリケーションを題材に、テストと自動デプロイのパイプラインを作ります。
Step 1: Cursorのインストールと初期設定
まだCursorを導入していない方は、公式サイトからダウンロードしてください(VS Codeの拡張機能や設定をそのまま引き継げるので、3分で終わります)。
Cursorの真骨頂は、Cmd+K(WindowsはCtrl+K)でのインライン生成や、Cmd+L(Ctrl+L)でのチャット機能です。
今回は、プロジェクトのルートディレクトリに `.cursorrules` という隠しファイルを作り、AIに対して「私たちのプロジェクトのルール」をあらかじめ教えておきましょう。
`.cursorrules` の作成例
Cursor AI Coding Rules
- You are an expert TypeScript developer.
- Always write unit tests using Jest for any new functions.
- Keep functions small, pure, and well-documented with JSDoc.
- Never use ‘any’ type unless strictly necessary.
※このファイルを置いておくだけで、CursorのAIがプロジェクトのコーディング規約に沿ったコードを自発的に書いてくれるようになります。これだけでもめちゃくちゃ便利ですよね!
Step 2: HelloWorld的な動作確認プロジェクトの準備
ローカル環境でプロジェクトの雛形を作り、GitHubのリポジトリと紐付けます。
プロジェクトディレクトリの作成と移動
mkdir cursor-ci-demo
cd cursor-ci-demo
Gitの初期化
git init
Node.jsプロジェクトの初期化
npm init -y
必要なテストライブラリ(Jest)のインストール
npm install –save-dev jest typescript @types/jest ts-jest
ここで、Cursorを開いて(`code .` もしくはCursorのメニューからフォルダを開く)、Cmd + K を押してAIにこう頼んでみてください。
> 「挨拶を返すだけの簡単なTypeScriptの関数 `sayHello(name: string): string` と、そのJestのテストコードを書いて」
AIが秒速で以下のようなコードを生成してくれます。
`src/index.ts`(AI生成コードの例)
/
- ユーザーに挨拶の文字列を返却する
- @param name 相手の名前
- @returns 挨拶文
/
export function sayHello(name: string): string {
if (!name) {
throw new Error(“Name cannot be empty”);
}
return `Hello, ${name}! Welcome to Cursor and CI/CD world.`;
}
`src/index.test.ts`(AI生成テストコードの例)
import { sayHello } from ‘./index’;
describe(‘sayHello function’, () => {
it(‘should return a proper greeting’, () => {
expect(sayHello(‘Developer’)).toBe(‘Hello, Developer! Welcome to Cursor and CI/CD world.’);
});
it(‘should throw an error if name is empty’, () => {
expect(() => sayHello(”)).toThrow(‘Name cannot be empty’);
});
});
ローカルで `npx jest` を実行し、テストが緑色(パス)になることを確認してください。ここまでが最高の「助走」です。
—
3. GitHub Actionsとの連携:CI/CDパイプラインの構築
ここからが本番です。Cursorで作ったこのコードとテストを、GitHubにプッシュした瞬間に「自動でテスト実行する仕組み(CI)」を構築します。
プロジェクトのルートに `.github/workflows/ci.yml` というディレクトリとファイルを作成してください。
GitHub Actions設定ファイルの詳細解説
`.github/workflows/ci.yml`
ワークフローの名称
name: Node.js CI/CD Pipeline with Cursor
どのタイミングでこのワークフローを動かすか(トリガー設定)
on:
push:
branches: [ “main” ] # mainブランチにプッシュされた時
pull_request:
branches: [ “main” ] # mainブランチに対してプルリクエストが作成された時
jobs:
build-and-test:
# 実行環境のOS指定(最新のUbuntuを使用)
runs-on: ubuntu-latest
# 処理のステップ順序
steps:
# 1. GitHubリポジトリのコードを仮想環境にチェックアウト(ダウンロード)
- name: Checkout repository
uses: actions/checkout@v4
# 2. Node.jsの環境構築(バージョン20系を指定)
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ’20’
cache: ‘npm’ # npmの依存関係をキャッシュしてビルドを高速化
# 3. 依存パッケージのインストール
- name: Install dependencies
run: npm ci
# 4. テストの実行(CursorのAIが書いてくれたJestテストがここで走ります)
- name: Run unit tests
run: npm test
# 5. (デプロイのシミュレーション)本番環境へのリリースステップ
- name: Simulated Deployment
if: github.ref == ‘refs/heads/main’ && github.event_name == ‘push’
run: |
echo “すべてのテストが正常に通過しました!”
echo “ここに本番サーバーへのデプロイコマンド(AWS, Vercel, Dockerなど)を記述します。”
echo “✨ Cursorで生成したコードが無事にCI/CDに乗ってリリースされました!”
この設定がもたらす圧倒的なメリット
このYAMLファイルをリポジトリに含めてGitHubにプッシュすると、GitHubの「Actions」タブで自動的にテストが走り始めます。
もし、あなたがCursorで新機能を追加した際、うっかり既存のテストを壊すようなコードを書いてしまっても、GitHub Actionsが「ちょっと待った、テストが落ちてるよ!」と自動で検知してくれます。人間が手動でテストし忘れるヒューマンエラーを、完全にシステムが防いでくれるのです。
—
4. 現場で役立つ!さらに開発効率を爆上げするTips
最後に、日々の開発でこの「Cursor × GitHub Actions」のコンビネーションをさらに強力にするための実践的なTipsをいくつかご紹介します。
1. CursorのターミナルからGit / GitHub Actionsの状態を監視する
Cursorには強力な統合ターミナルがあります。ここでGitHub CLI(`gh`コマンド)を組み合わせると、エディタから一歩も出ずにCIの状態を確認できます。
最近のGitHub Actionsの実行ステータスをCursorのターミナルから一発確認
gh run list
「あ、今のプッシュのCIが通ったな」という確認がエディタ内で完結するため、ブラウザを開く手間すら省けます。
2. 「AIにGitHub Actionsのエラーを直してもらう」奥義
もしGitHub Actionsのテストやビルドが失敗した時、あなたならどうしますか?
ログをコピーして、ブラウザのAIチャットに貼り付けて……とやっていませんか?
Cursorならもっとスマートです。
1. 失敗したGitHub Actionsのログのエラー部分をコピーする。
2. Cursorを開き、チャット(Cmd + L)に貼り付けてこう言う。
> 「このGitHub Actionsのエラーログを解決するように、該当するコードを修正して」
3. CursorのAIが原因を特定し、修正パッチをその場で提示してくれる。
エラーの検知(GitHub Actions)と、修正の爆速化(Cursor)がシームレスにループするため、バグ修正のリードタイムが劇的に短縮されます。
—
まとめ
今回は、「Cursor」と「GitHub Actions」を連携させた最強の自動化開発フローについて解説しました。
- CursorでAIの力を借りて、高品質なコードとテストを爆速で生成する。
- GitHub Actionsで、それをトリガーに自動テスト・自動デプロイを走らせ、品質の担保とリリース作業を完全に自動化する。
このフローを手に入れた瞬間から、あなたのコーディング体験は「作業の連続」から「クリエイティブな設計の連続」へとシフトします。
「これをマスターすれば、毎日のコーディングが劇的に楽になりますよ」。
ぜひ、今日の開発からこのパイプラインを取り入れて、圧倒的な生産性の高さを体感してみてください!