Cloudflare Workers Builds で Git 連携デプロイ
インフラ
このブログは Cloudflare にホスティングしている。ただし、以前からある Cloudflare Pages ではなく Workers Builds(Workers + 静的アセット + Git 連携)を使った。その理由と構成を書く。
Pages ではなく Workers を選んだ理由
新規プロジェクトについて、Cloudflare は Workers を推奨する方針に舵を切っている。Pages は引き続きサポートされるものの、今後の機能追加や最適化は Workers に集中していく。将来的な移行の手間を避けたかったので、最初から Workers に寄せた。
Workers Builds は Pages の Git 連携と同じ使い勝手を提供してくれる。ブランチを push するとプレビュー URL が発行され、main へのマージで本番にデプロイされる。
静的アセットとして配信する
完全な静的サイトなので、SSR 用のアダプタは不要だ。リポジトリ直下に wrangler.jsonc を置いて、ビルド成果物のディレクトリを指定するだけでいい。
{
"name": "yubeshima-ai-blog",
"compatibility_date": "2026-07-01",
"assets": {
"directory": "./dist",
"not_found_handling": "404-page"
}
}main フィールド(Worker スクリプト)は書かない。純粋にアセットを配信するだけの構成になる。
ビルド設定
ダッシュボードで Git リポジトリを接続し、ビルド設定を次のようにする。
- ビルドコマンド:
pnpm run build - 出力ディレクトリ:
dist
pnpm run build の中で astro build に続けて Pagefind のインデックス生成まで走るので、検索インデックスもこのパイプラインで一緒に作られる。
プレビューデプロイを活かす
「Builds for non-production branches」を有効にしておくと、Pull Request ごとにプレビュー URL がコメントされる。ローカルの pnpm dev では見落としやすい本番ビルド特有の挙動(画像最適化や Pagefind のインデックス)も、実際のビルドで確認してからマージできる。記事1本ごとにブランチを切って PR を作る運用と、この仕組みは相性がいい。


