未分類
Cloudflare Pages × GitHub 自動デプロイ設定ガイド
概要
Cloudflare PagesとGitHubリポジトリを連携することで、GitHubにプッシュするだけで自動的にビルド・デプロイが実行されます。
主な機能
- 自動デプロイ: mainブランチへのプッシュで自動デプロイ
- プレビューデプロイ: プルリクエストごとにプレビューURL生成
- ビルドステータス: GitHubにビルド状況を通知
- 無料プラン: 基本的な機能は無料で利用可能
設定手順
1. Cloudflare Pagesへアクセス
- Cloudflare Dashboardにログイン
- 左側メニューから Workers & Pages を選択
- Create application をクリック
- Pages タブを選択
- Connect to Git をクリック
2. GitHubリポジトリの接続
- GitHub を選択(初回のみ認証が必要)
- Cloudflare Pagesアプリケーションに権限を付与
- すべてのリポジトリ、または特定のリポジトリを選択
- 接続したいリポジトリを選択
- Begin setup をクリック
3. ビルド設定の構成
プロジェクトの設定画面で以下を設定:
基本設定
- Project name: プロジェクト名(URL:
<project-name>.pages.dev) - Production branch: 本番デプロイのブランチ(通常は
mainまたはmaster)
ビルド設定
フレームワークに応じて設定(例: Nuxt.js の場合):
Framework preset: Nuxt.js
Build command: pnpm run build
Build output directory: .output/public
環境変数
必要に応じて環境変数を追加:
- Variable name: 変数名
- Value: 値
4. デプロイの開始
Save and Deploy をクリックすると、初回ビルドが開始されます。
自動デプロイの動作
自動デプロイフロー
Production デプロイ
- トリガー: Production ブランチ(main/master)へのプッシュ
- デプロイ先:
https://<project-name>.pages.dev - 動作: 自動的にビルド・デプロイが実行される
Preview デプロイ
- トリガー: プルリクエストの作成・更新
- デプロイ先:
https://<commit-hash>.<project-name>.pages.dev - 動作: PRごとに独自のプレビューURLが生成される
詳細設定
ブランチコントロール
プロジェクトの Settings > Builds & deployments で設定:
Preview デプロイの制御
- Branch deployments: すべてのブランチ or 特定のブランチのみ
- Enable preview deployments: プレビューデプロイの有効/無効
- Branch patterns: デプロイ対象ブランチのパターン指定
ビルドキャッシュ
- Enable build cache: ビルド時間短縮のためのキャッシュ有効化
カスタムドメインの設定
- プロジェクトの Custom domains タブ
- Set up a custom domain をクリック
- ドメイン名を入力
- DNSレコードを設定(自動 or 手動)
デプロイフック(Webhook)
外部トリガーでデプロイを実行したい場合:
- Settings > Builds & deployments
- Deploy hooks セクション
- Create deploy hook をクリック
- フック名とブランチを指定
- 生成されたURLにPOSTリクエストを送信
curl -X POST https://api.cloudflare.com/client/v4/pages/webhooks/deploy_hooks/<hook-id>
GitHub Actions による高度な制御
より細かい制御が必要な場合は、GitHub Actions + Wrangler を使用:
name: Deploy to Cloudflare Pages
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: pnpm install
- run: pnpm build
- name: Deploy to Cloudflare Pages
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
command: pages deploy .output/public --project-name=<project-name>
トラブルシューティング
ビルドが失敗する
- ローカルでビルド確認:
pnpm buildが成功するか確認 - Node.js バージョン: 環境変数
NODE_VERSIONで指定 - ビルドログ確認: Cloudflare Dashboard でログを確認
自動デプロイが動作しない
- GitHub連携確認: Settings > Integrations で接続状態を確認
- ブランチ設定確認: Production ブランチ名が正しいか確認
- 権限確認: GitHubアプリの権限が適切か確認
デプロイは成功するがサイトが表示されない
- 出力ディレクトリ確認: Build output directory が正しいか確認
- ファイル構成確認:
index.htmlが出力されているか確認 - ルーティング設定: SPA の場合
_redirectsファイルが必要
参考リンク
注意事項
- Git連携を有効にすると、後から Direct Upload に切り替えることはできません
- 無料プランでは月間500ビルド、帯域幅無制限
- ビルド時間は最大20分まで(無料プラン)