yancy-min-842ofHC6MaI-unsplash
AI

Claude Codeによる変更を自動で本番環境にデプロイする手順(Github Action版)

目次

Claude CodeはAnthropicが提供する革新的なAIコーディングツールで、ターミナルから直接コーディングタスクを委託できます。しかし、作成したコードを手動で本番環境にデプロイするのは手間がかかり、ヒューマンエラーの原因にもなります。

本記事では、GitHub Actionsを使用してClaude Codeによる変更を自動的に本番環境(レンタルサーバー)にデプロイする方法を詳しく解説します。

結論:GitHub Actionsで実現する自動デプロイ

GitHub ActionsのWorkflowを設定することで、GitHubにpushした変更を自動的にレンタルサーバーに反映できます。 これにより、Claude Codeで生成したコードをコミット・プッシュするだけで、本番環境への反映が完了します。

前提条件

自動デプロイを実現するために必要な環境は以下の通りです:

  • Claude Codeがインストールされた開発環境
  • GitHubアカウント
  • SSHアクセス可能なレンタルサーバー
  • 基本的なGitの知識

ステップ1:プロジェクトにGitを導入し、GitHubリポジトリを作成

ローカルプロジェクトでGitを初期化

まず、Claude Codeで作業しているプロジェクトディレクトリでGitを初期化します。

bash

# プロジェクトディレクトリに移動
cd /path/to/your/project

# Gitリポジトリを初期化
git init

# .gitignoreファイルを作成(必要に応じて)
echo "node_modules/" > .gitignore
echo ".env" >> .gitignore

# 初回コミット
git add .
git commit -m "Initial commit"

GitHubでリポジトリを作成

  1. GitHubにログインし、右上の「+」ボタンから「New repository」を選択
  2. リポジトリ名を入力(例:my-claude-code-project
  3. Public/Privateを選択
  4. 「Create repository」をクリック

ローカルリポジトリとGitHubを連携

bash

# GitHubリポジトリをリモートとして追加
git remote add origin 

# mainブランチにプッシュ
git branch -M main
git push -u origin main

ステップ2:本番サーバーの準備

SSHでサーバーにアクセス

bash

ssh username@your-server.com

サーバー上でプロジェクトをクローン

本番環境のディレクトリでGitHubからプロジェクトをクローンします。

bash

# Webルートディレクトリに移動(例:/var/www/html)
cd /var/www/html

# GitHubからクローン
git clone 
cd YOUR_REPOSITORY

# 必要に応じて依存関係をインストール
# Node.jsプロジェクトの場合:
npm install --production

ステップ3:GitHub Actions Workflowの設定

デプロイ用のSSHキーを生成

ローカル環境で新しいSSHキーペアを生成します。

bash

ssh-keygen -t ed25519 -C "github-actions-deploy" -f ~/.ssh/github-actions-deploy

サーバーに公開鍵を登録

生成した公開鍵をサーバーのauthorized_keysに追加します。

bash

# 公開鍵の内容を表示
cat ~/.ssh/github-actions-deploy.pub

# サーバーにSSHでログインし、authorized_keysに追加
ssh username@your-server.com
echo "YOUR_PUBLIC_KEY_CONTENT" >> ~/.ssh/authorized_keys

GitHub Secretsに秘密鍵を登録

  1. GitHubリポジトリの「Settings」→「Secrets and variables」→「Actions」へ移動
  2. 「New repository secret」をクリック
  3. 以下のSecretを追加:
    • SSH_PRIVATE_KEY: 秘密鍵の内容(~/.ssh/github-actions-deployの中身)
    • SSH_HOST: サーバーのホスト名またはIPアドレス
    • SSH_USERNAME: SSHユーザー名

Workflow YAMLファイルの作成

プロジェクトルートに.github/workflows/deploy.ymlを作成します。

yaml

name: Deploy to Production

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    
    steps:
    - name: Deploy to server
      uses: appleboy/ssh-action@v0.1.5
      with:
        host: ${{ secrets.SSH_HOST }}
        username: ${{ secrets.SSH_USERNAME }}
        key: ${{ secrets.SSH_PRIVATE_KEY }}
        script: |
          cd /var/www/html/YOUR_REPOSITORY
          git pull origin main
          # Node.jsプロジェクトの場合
          npm install --production
          # PHPプロジェクトでComposerを使用している場合
          # composer install --no-dev
          # 必要に応じてビルドコマンドを追加
          # npm run build
          # キャッシュクリアなど、必要な処理を追加
          # php artisan cache:clear

ステップ4:Claude Codeでの開発とデプロイフロー

Claude Codeで変更を作成

bash

# Claude Codeを使用してコードを生成・編集
claude-code "Add user authentication feature"

変更をコミット・プッシュ

bash

# 変更をステージング
git add .

# コミット
git commit -m "Add user authentication feature by Claude Code"

# GitHubにプッシュ(自動デプロイがトリガーされる)
git push origin main

デプロイの確認

GitHubリポジトリの「Actions」タブでワークフローの実行状況を確認できます。成功すると、本番環境に自動的に変更が反映されます。

セキュリティのベストプラクティス

1. 環境変数の管理

本番環境の設定は.envファイルで管理し、GitHubにはコミットしないようにします。

bash

# .gitignoreに追加
echo ".env" >> .gitignore

2. ブランチ保護ルールの設定

mainブランチへの直接プッシュを制限し、プルリクエストを必須にすることで、意図しないデプロイを防げます。

3. デプロイ用SSHキーの定期的な更新

セキュリティを維持するため、デプロイ用のSSHキーは定期的に更新することを推奨します。

トラブルシューティング

デプロイが失敗する場合

  1. SSH接続エラー: Secretsに登録した情報が正しいか確認
  2. 権限エラー: サーバー上のディレクトリ権限を確認
  3. Git pullエラー: サーバー上でローカル変更がないか確認

ログの確認方法

bash

# サーバー上でGitログを確認
git log --oneline -10

# GitHub Actionsのログを確認
# GitHubリポジトリの「Actions」タブから該当のワークフローを選択

まとめ

Claude CodeとGitHub Actionsを組み合わせることで、AIが生成したコードを安全かつ効率的に本番環境にデプロイできます。この自動化により、開発スピードが向上し、手動デプロイによるミスを防ぐことができます。

Claude Codeの強力なコード生成能力と、GitHub Actionsの自動化機能を活用して、より生産的な開発環境を構築しましょう。

ビジネスの成長をサポートします

Harmonic Societyは、最新のテクノロジーとクリエイティブな発想で、
お客様のビジネス課題を解決します。

豊富な実績と経験
最新技術への対応
親身なサポート体制

harmonic-society

Harmonic Society編集部です。コンテンツ・マーケティングを軸にWebマーケティングの情報を発信しています。Creating Harmony in small steps, 世の中にもっと調和が訪れますように。

コメントを残す