Loading...

2023-11-17(金) 15:00

🪝 Cloudflare Pagesのデプロイフックを使ってデプロイする

CloudflareCloudflare PagesGithub Actions
Cloudflare Pagesのデプロイフックを使ってデプロイを実行する手順を解説します。

目次

前提と注意事項

以下が前提と注意事項になります。

  • Cloudflare アカウントは作成済みで Cloudflare Pages をすでに利用している
  • Cloudflare Pages と GitHub リポジトリの連携済みですでにデプロイが成功している

この記事のゴール

Cloudflare Pages のデプロイフックを新規作成し、curlコマンドから POST リクエストをデプロイフックに対して送信することでデプロイを実行するところまでをゴールとします。 すなわち、以下のコマンドを実行することで、

ターミナル
$ curl -X POST "https://api.cloudflare.com/client/v4/pages/webhooks/deploy_hooks/2js9c9am2-149s-ski2-skt9-29jd9p1mkdsa"

以下のようにデプロイ処理が実行されることを目指します。

デプロイフックでデプロイが進行中の状態

デプロイフックを作成する

Cloudflare にログインして Cloudflare Pages のページを開き、以下のように Cloudflare Pages の「設定」タブの中の「ビルド&デプロイ」を開きます。 なお、今後はデプロイフックでのデプロイのみを実行したいため、プロダクションブランチの自動デプロイは無効にしておきます。

Cloudflare Pagesの設定タブの中のビルド&デプロイを開いた画面

同じページの下のほうに、以下のように「デプロイ フック」という項目があります。その中にある「デプロイ フックを追加します」ボタンをクリックします。

デプロイフックの追加ボタンをクリックした画面

「デプロイ フックを追加します」ボタンをクリックすると、以下のように「デプロイ フック名」の入力フォームが表示されるので、適当な名前を入力し、ビルドするブランチを選択して「追加」ボタンをクリックします。

デプロイフックの追加画面

「追加」ボタンをクリックすると、以下のように表示されます。

デプロイフックが追加された画面

表示されている URL がデプロイフックの URL になります。この URL に対して任意のタイミング、好きな方法で POST リクエストを送信すれば、デプロイを実行できるようになります。
URL の下にある「クリックしてコピー」をクリックして URL をコピーしておきます。 その後「終了」ボタンをクリックします。

「終了」ボタンをクリックすると、作成したデプロイフック一覧が表示されます。いま作成したtrigger-deploy-hookの「詳細」をクリックすると、以下のようにデプロイフック URL とテスト用のcurlコマンドが表示されます。このcurlコマンドを「クリックしてコピー」をクリックしてコピーします。

デプロイフックの詳細画面

動作確認

コピーしたcurlコマンドを実行してみます。

ターミナル
$ curl -X POST "https://api.cloudflare.com/client/v4/pages/webhooks/deploy_hooks/2js9c9am2-149s-ski2-skt9-29jd9p1mkdsa"

実行すると以下のような応答が返ってきます。

ターミナル
$ curl -X POST "https://api.cloudflare.com/client/v4/pages/webhooks/deploy_hooks/2js9c9am2-149s-ski2-skt9-29jd9p1mkdsa"
{
  "result": {
    "id": "223rs9csdfa-112s-sk12-wet9-sdfip2qe3ima"
  },
  "success": true,
  "errors": [],
  "messages": []
}

successがtrueとなっていれば正常にデプロイフックでデプロイをトリガできています。Cloudflare Pages でデプロイ状況を確認すると、デプロイが開始されているはずです。 Cloudflare Pages の管理画面を確認すると、以下のようにステータスが「進行中」になっており、「デプロイ フックによってトリガされます」と表示されていることを確認できます。

デプロイフックでデプロイが進行中の状態

以上で動作確認が完了しました.

まとめ

Cloudflare Pages のデプロイフックを利用することで、好きなタイミングで好きな方法でデプロイを実行できます。POST リクエストを送れるものならば何でも OK なため、何かしらのサービスと連携してのデプロイも容易です。