デプロイはCloudflare Workers(静的アセット配信機能)を使います。Cloudflareは2025年にPages(静的サイト専用ホスティング)を非推奨化し、Workersを新規プロジェクトの標準としているため、本リポジトリはWorkers向けのwrangler.jsoncを同梱しています。SSR用のWorkerコードは持たない、純粋な静的アセット配信構成です。lint・型チェック・ユニットテスト・ビルド・E2Eといった品質ゲートはGitHub Actions側で独立して実行されるため、デプロイ専用のワークフローYAMLはリポジトリに含みません。
接続手順(Git連携)
- Cloudflareダッシュボードの「Compute (Workers)」からこのリポジトリを連携する
wrangler.jsoncが自動検出される。ビルド設定を以下の内容にするwrangler.jsoncのnameをCloudflare側のWorkerプロジェクト名と一致させる(「Use this template」でサイトを作った場合は書き換えが必要)- 必要に応じて環境変数を設定する(マーケティングタグのコンテナを本番/プレビューで出し分けたい場合など。サイト設定のページを参照)
mainブランチへのマージで本番デプロイ、プルリクエスト作成でプレビューURLが自動発行される
ビルド設定
- ビルドコマンド:
npm run build - デプロイコマンド:
npx wrangler deploy - 出力ディレクトリ: ダッシュボード側での指定は不要(
wrangler.jsoncのassets.directoryが./distを指定済み)
ローカルからの手動デプロイ
Git連携を使わず手元から直接デプロイしたい場合:
npm run build
npx wrangler deploy
初回はnpx wrangler loginでCloudflareアカウントの認証が必要です。
ルートのリダイレクト
多言語対応をオプトインしている場合、public/_redirectsがルート/をデフォルトロケール(/ja/)へ302リダイレクトします。
# public/_redirects
/ /ja/ 302
_redirectsはCloudflare Pages・Workers静的アセットの両方でネイティブサポートされていますが、ローカルのnpm run dev・npm run previewでは効きません。ローカル確認時は/ja/のようにロケールを明示したパスへ直接アクセスしてください。
CIとの関係
品質ゲートは.github/workflows/ci.ymlで、プルリクエスト作成時とmainブランチへのプッシュ時に実行されます。内容は依存関係のインストールに続けて、lint・型チェック(astro check)・ユニットテスト(Vitest)・ビルド・E2E(Playwright)の順です。Cloudflare側のデプロイとは別トリガーで動くため、CIが失敗していてもCloudflare側のプレビューデプロイ自体は独立して作成されます。マージ前に品質を担保したい場合は、GitHub側のブランチ保護ルールでこのワークフローを必須ステータスチェックとして設定してください。