Open4
cloudflare pages * GitHub Flow
モチベーション
- cloudflare pages で開発したフロントエンドアプリケーションを GitHub Flow で運用したい
- cloudflare pages では preview 環境, production 環境を branch で管理しているので、どうやって実現できるか
今の所の結論
運用するブランチを1つに絞るのは少し難しそうなので、以下の方針で妥協
- production 環境を main ブランチに紐付ける
- preview 環境を任意のブランチに紐づける
- 動作を確認したい場合
- main ブランチにマージされてもすぐにデプロイされないよう https://github.com/cloudflare/pages-action などを利用してデプロイ
- preview 環境と紐付けた branch に手動 push して、動作を確認
やりたかったこと
- preview, production branch : main
- preview : cloudflare pages の自動デプロイでデプロイ
- production : https://github.com/cloudflare/pages-action でデプロイ。cloudflare pages の自動デプロイは止めておく
↑の結果
- main ブランチでのコミットで production 環境のデプロイが発火 -> 自動デプロイは止めているのでそのまま終了
- preview 環境の自動デプロイは発火せず
その他の調査
-
https://developers.cloudflare.com/api/operations/pages-deployment-create-deployment
- deploy API でも branch を指定することしかできないので難しそう
-
https://developers.cloudflare.com/api/operations/pages-project-get-projects
-
production_branch
がmain
,preview_branch_includes
が["main"]
になっていた - https://github.com/cloudflare/pages-action でもブランチしか見ておらず、production or preview の判定はこの branch のパラメータを見て行なっており、判定結果も出力に利用しているだけ -> コントロールできなさそう
- https://github.com/cloudflare/pages-action/blob/main/src/index.ts#L49
-