概要

Cloudflare Pagesがブランチ毎にURLを発行してくれる機能について紹介

Cloudflare Pagesとは?

Cloudflare Pagesはウェブサイトやアプリケーションを展開するためのホスティングおよびデプロイメントプラットフォームです。Cloudflare Pagesは、Cloudflareのグローバルなエッジネットワークを利用して、ウェブコンテンツを高速かつセキュアに配信します。

何が便利なの?

Cloudflare Pagesではブランチ毎にURLを発行してくれる機能があり、開発現場でのレビュアーが動作確認する際にローカルに落としてきてサーバーを立ち上げるという手間を削減することができます。

やってみた

事前準備(Nuxt)

今回は、Nuxt.jsでpages配下のファイルに簡単な変更を加えてみるケースで行ってみます
簡単に説明していきます

プロジェクト作成

npx nuxi@latest init {作りたいアプリケーション名}

作成したディレクトリに移動しnpm i

cd {作りたいアプリケーション名}/ && npm i

git追跡

git init

サーバー起動

npm run dev -- -o

以下の画面が出てくればOK
image.png

pagesディレクトリ作成し、index.vueを作成

mkdir pages && touch pages/index.vue

index.vueの中身を以下のものにする

<div>
<h1>index.vueのページです</h1>
</div>

app.vueファイルのNuxtWelcomeコンポーネントをNuxtPageに変更

<div></div>

以下の画面となればOK
image.png

Nuxt最新バージョン(3.6.1)だとHMRが効かないことありますが、一度サーバー立て直すと上手くいきます

これらをGitHubにあげて事前準備は終わりです!

次、Cloudflareのアカウントが必要になるので登録がまだの人は済ませておいてください

Cloudflare Pages

Cloudflareにアクセスし、ログインします
左サイドバーのWorkers & Pages概要に移動します
image.png

アプリケーションの作成をクリック
image.png

PagesをクリックしGitに接続をクリック
image.png

アカウント接続が完了したら、今回作成したリポジトリを選択しセットアップの開始をクリック
515C5215-F56B-42BE-BE4D-683AFA970066_1_201_a.jpeg

続いてビルドとデプロイの設定ですが、公式ドキュメントにフレームワーク毎のセットアップ方法が記載されているので、以下リンクを参照してください。

https://developers.cloudflare.com/pages/framework-guides/deploy-a-nuxt-site/

Configuration option    Value 
Production branch  main 
Build command  npm run build 
Build directory  dist 
Environment Variables  NODE_VERSION: 17 

またフレームワーク プリセットをNuxtで選択すると自動入力してくれます
image.png

次に進んで、CI/CDが完了すると、URLが発行されます
E6AEC8FA-41F2-4CE6-BA2C-212E37B5FAAD_1_201_a.jpeg

発行されたURLに遷移すると、作成したファイルが確認できます
2BF9D124-151E-46C9-9F65-6677B69D6E8B_4_5005_c.jpeg

そして本題のブランチを切った運用ですが、
まずNuxt側でブランチを切って、変更を加えてみます(ブランチ名はsampleにします)

git checkout -b sample

次にindex.vueファイルに変更を加えます

<div>
<h1>index.vueのページです</h1>
sampleブランチで変更を加えました

</div>

この変更をpushすると、Cloudflare Pagesで自動でCI/CDが走ります

AAA541E1-61EC-4E2D-BA7D-5019819F1B37_4_5005_c.jpeg

これは、デプロイの設定で自動デプロイがデフォルトで有効になっているためです

image.png

自動デプロイの対象とするブランチを選択することもできます

image.png

CI/CDが通ると、sampleブランチ用にURLを発行してくれます

以下の画面が確認できれば完了です

image.png

おわり

見ていただきありがとうございます。今回は、Cloudflare Pagesを使って、レビュアーの負担を削減する方法というテーマでした。
ホスティングサービスはこれまでvercelしか使ったことがなく、この機能が一般的なのかはわからないですが、開発現場でレビュアーが「PRをローカルに落としてサーバー立ち上げて、、」ってちょっとめんどくさい作業でしたので、ブランチ毎にURLを発行してくれるのはとても便利だなと思いました。
ただvercelの方がGitHubアカウントの連携からURL発行まではシームレスにできる印象を感じました。

とはいえ、mainブランチとsampleブランチを同時に見ながら変更点の確認が行えるので、ローカルサーバー起動時にポートが干渉したりすることもなく実用性も感じました。

今回行ったことは無料プランで全部できるので、ぜひ一度試してみてもらえればと思います。月500ビルドまでが無料だった気がします。