前提と注意事項
以下が前提と注意事項になります。
- 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 の「設定」タブの中の「ビルド&デプロイ」を開きます。 なお、今後はデプロイフックでのデプロイのみを実行したいため、プロダクションブランチの自動デプロイは無効にしておきます。
同じページの下のほうに、以下のように「デプロイ フック」という項目があります。その中にある「デプロイ フックを追加します」ボタンをクリックします。
「デプロイ フックを追加します」ボタンをクリックすると、以下のように「デプロイ フック名」の入力フォームが表示されるので、適当な名前を入力し、ビルドするブランチを選択して「追加」ボタンをクリックします。
「追加」ボタンをクリックすると、以下のように表示されます。
表示されている 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 なため、何かしらのサービスと連携してのデプロイも容易です。