【2026年版】GitHub ActionsとVPSを連携!AIに書かせたコードを自動デプロイするCI/CD超入門
最初に結論を書きます
AIでコードを書き始めたなら、CI/CDは今すぐ入れてください。後回しにする理由がないです。
Claude CodeやChatGPTを使い始めると、コードの変更頻度が体感で3〜5倍になります。そのたびにSSHしてgit pullして…をやってると、AIで節約した時間を全部デプロイ作業で溶かします。本末転倒です。
Self-hosted RunnerをVPSに置いて、pushしたら終わり——これをやるかやらないかで、AI開発の体験がかなり変わります。セットアップ自体は30〜60分あれば終わるので、さっさとやってしまった方がいいです。
あと先に言っておくと、CI/CD用途にGPUは一切不要です。ビルドとデプロイはCPU処理です。GPU付きプランに誘導してくる記事があったら、単純にアフィリエイト報酬が高いプランに誘導しているだけなので無視してください。
CI/CDとは?AIコード開発での必要性
| 用語 | 意味 |
|---|---|
| CI(継続的インテグレーション) | コードをpushするたびにテストを自動実行 |
| CD(継続的デリバリー) | テスト通過後にサーバーへ自動デプロイ |
AIにコードを生成させると変更頻度が格段に上がります。手動でSSHしてgit pullするのは非効率です。CI/CDを組めば「AIに指示 → コード生成 → push → 自動デプロイ」が1〜2分で完結します。
正直に言うと、手動デプロイのしんどさはコード変更が少ないうちは気にならないんですよね。1日1〜2回のpushなら「まあいいか」で乗り越えられる。でもAIを使い始めたとたんに「あ、これ無理だ」ってなる。自分もそのタイミングで慌てて導入しました。最初からやっておけばよかった案件です。
アーキテクチャ全体像
ローカル or AI(Claude Code等)
↓ git push
GitHub リポジトリ
↓ Actions起動
Self-hosted Runner(VPS上)
↓ ビルド・テスト
本番環境(同VPS or 別サーバー)
VPSが1台の場合、RunnerもアプリもそのVPSに同居させるのが一番シンプルです。最初はこれで十分。スケールが必要になってから分ければいい。「きれいな構成」にこだわって始めるのが遅くなるよりも、シンプルに動かす方が100倍マシです。
Step 1: VPSにSelf-hosted Runnerを設置する
なぜSelf-hosted?
GitHub提供のRunnerはパブリックリポジトリで無料ですが、プライベートリポジトリでは月2,000分の無料枠があります。Self-hosted RunnerをVPSに置けば実行時間の制限なし、かつデプロイがVPS内で完結するため高速です。
月2,000分というのは、1回のデプロイに3分かかるとすると約666回分。毎日20回pushしたとして33日分。余裕そうに見えますが、AIを使い始めると平気で超えます。Self-hostedにしておく方が精神的にラクです。「今月の残り枠どのくらいだっけ」って気にしながら開発したくないですよね。自分は気にしたくないタイプなので、最初からSelf-hostedにしました。
Runnerのインストール手順
# GitHubリポジトリ → Settings → Actions → Runners → New self-hosted runner
# 表示されるコマンドをそのまま実行(URLとトークンはリポジトリごとに異なる)
mkdir actions-runner && cd actions-runner
curl -o actions-runner-linux-x64-2.316.0.tar.gz -L \
https://github.com/actions/runner/releases/download/v2.316.0/actions-runner-linux-x64-2.316.0.tar.gz
tar xzf ./actions-runner-linux-x64-2.316.0.tar.gz
./config.sh --url https://github.com/your-org/your-repo --token YOUR_TOKEN
# サービスとして常駐起動
sudo ./svc.sh install
sudo ./svc.sh start
sudo ./svc.sh install でサービス登録しておくのが重要です。これをやらないとVPS再起動のたびにRunnerが落ちて「なんかActionsが反応しない」ってなります。自分は最初これを忘れて30分無駄にしました。同じ轍を踏まないようにしてください。
Step 2: GitHub Actionsワークフローを作成する
# .github/workflows/deploy.yml
name: AI Code Auto Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: self-hosted # VPS上のRunnerを使用
steps:
- name: コードをチェックアウト
uses: actions/checkout@v4
- name: Node.jsのセットアップ
uses: actions/setup-node@v4
with:
node-version: '20'
- name: 依存パッケージをインストール
run: npm ci
- name: テストを実行
run: npm test
- name: ビルド
run: npm run build
- name: アプリを再起動
run: |
pm2 restart my-app || pm2 start dist/index.js --name my-app
pm2 save
このワークフローで「テストが落ちたらデプロイしない」という安全弁が自動で入ります。これが地味に大事です。AIが書いたコードはたまに微妙なバグを混入させるので、「AIが書いたから大丈夫」は過信です。はっきり言っておきます。テストを挟む習慣をつけておくと、深夜に壊れた本番環境を直す羽目になるリスクがぐっと減ります。
Step 3: SSH経由でのデプロイアクション(別サーバーへのデプロイ)
本番サーバーが別のVPSの場合、SSH Actionを使います:
- name: SSHでデプロイ
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.DEPLOY_HOST }}
username: ${{ secrets.DEPLOY_USER }}
key: ${{ secrets.DEPLOY_SSH_KEY }}
script: |
cd /var/www/my-app
git pull origin main
npm ci --production
pm2 restart my-app
GitHub SecretsにSSHの秘密鍵・ホスト・ユーザー名を登録するだけで安全にデプロイできます。
秘密鍵をSecretsに入れるのに最初は「大丈夫か…?」ってなるかもしれないですが、GitHub Secretsはワークフローのログにも表示されないし、リポジトリへの書き込み権限を持っている人しかアクセスできないので、ちゃんと管理されていれば問題ないです。平文でyamlに直書きするのだけは絶対にやめてください。それだけは守ってほしい。
AI生成コードを自動デプロイする実際のフロー
# 1. AIにコード修正を依頼(例:Claude Code)
claude "ログイン機能にリトライ処理を追加して"
# 2. 生成されたコードをコミット
git add -A
git commit -m "feat: add retry logic to login"
# 3. pushするだけ——あとはGitHub Actionsが自動でデプロイ
git push origin main
pushした瞬間にActionsが起動し、2〜3分後には本番に反映されています。
これを一度体験すると手動デプロイに戻れなくなります。「push→コーヒー淹れる→戻ったら本番反映済み」というリズムになる。AIと組み合わせると開発速度の体感がかなり変わります。自分の場合、CI/CDを入れる前と後で「あ、もうデプロイしたの?」ってなる頻度が全然違います。
VPS選びのポイント(CI/CD用途)
| 項目 | 推奨 |
|---|---|
| CPU | 2〜4コア(ビルド処理に使用) |
| メモリ | 4GB以上(Node.jsビルドは2GBを消費することも) |
| SSD | 50GB以上(Dockerイメージ・キャッシュ含む) |
| OS | Ubuntu 22.04 LTS |
CI/CD用途にGPUは完全に不要です。 もう一度言います。ビルドとデプロイはCPUの処理です。GPU付きプランを勧めてくる記事があったら、単純にアフィリエイト報酬が高いプランに誘導しているだけです。月数万払う必要はまったくないので、乗せられないようにしてください。
メモリは4GBを最低ラインにしておくのが無難です。Node.jsのビルドは思ったよりメモリを食います。2GBのプランで始めてビルドが途中でOOMキラーに落とされる、というのはよくある話です。ケチって2GBにして後で後悔するくらいなら、最初から4GBにしておいた方がいい。月額の差額は数百円程度です。
まとめ:あなたの使い方で選ぶ
| ステップ | 内容 |
|---|---|
| 1 | VPSにSelf-hosted Runnerをインストール・サービス登録 |
| 2 | .github/workflows/deploy.yml を作成 |
| 3 | GitHub Secretsにデプロイ先の認証情報を登録 |
| 4 | main pushをトリガーにビルド→テスト→デプロイを自動化 |
あなたの状況に合わせた判断テーブル
| 状況 | 判断 |
|---|---|
| AIでコードを書き始めたばかり、まだ手動デプロイしてる | 今すぐCI/CD入れた方がいい。後回しにするほど手間が増えるだけ |
| プライベートリポジトリ、AIでガンガンpushしてる | Self-hosted Runner一択。GitHub提供の月2,000分はあっという間に溶ける |
| パブリックリポジトリ、たまにしかpushしない | GitHub提供Runnerの無料枠で十分。Self-hostedは後でいい |
| VPSのスペックをどうするか迷ってる | メモリ4GB以上、GPUは不要。GPU付きプランへの誘導は無視でいい |
| CI/CD用途でGPU付きプランを勧められた | やめとけ。アフィリエイト目的の誘導です。CPU処理にGPUは関係ない |
| セットアップが面倒で後回しにしてた | 30〜60分で終わる。この記事通りにやれば詰まるポイントは少ない |
一度動かしてしまえば、あとはほぼ触らなくていい仕組みです。最初の設定コストを払えば、以降のデプロイ作業がゼロになる。費用対効果で言うと相当高いです。
これが最終回答じゃないし、最初から完璧にやる必要もないので、まずはシンプルな構成で動かしてみてください。動いてから改善すればいい。