GitHub Actions の cloudflare/pages-action が非推奨になったため、移行します
GitHub Actions で Next.js のプロジェクトをビルドし Cloudflare Pages にデプロイする際、これまでは cloudflare/pages-action が利用できましたが、2024年10月にリポジトリがアーカイブに指定されました
今回は wrangler CLI コマンドを直接利用した wrangler-action に移行してみようと思います
これから Cloudflare Pages にデプロイする方へ
今回の記事では、移行する方を前提に書きますが、最初から設定したい方は、以下も参考にしてみてください
ではでは、実際に移行していきます
例えば、こんな感じのプロジェクトがあったとします
| 概要 | |
|---|---|
| Cloudflare API トークン | (CLOUDFLARE_API_TOKEN として GitHub リポジトリの secrets に登録) |
| Cloudflare アカウント ID | (CLOUDFLARE_ACCOUNT_ID として GitHub リポジトリの secrets に登録) |
| プロジェクト名 | project |
| ビルド出力先 | .vercel/output/static |
これまでは、デプロイ時に以下のように設定していたかなと思います
- name: Deployid: cloudflare_pages_deployuses: cloudflare/pages-action@v1with:apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}projectName: projectdirectory: .vercel/output/staticgitHubToken: ${{ secrets.GITHUB_TOKEN }}
コマンドを使った方法になるので、これを移行すると以下のようになります
- name: Deployid: cloudflare_pages_deployuses: cloudflare/wrangler-action@v3with:apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}command: pages deploy .vercel/output/static --project-name project
まず secrets.GITHUB_TOKEN は不要になりました
また「プロジェクト名」や「ビルド出力先」の指定方法は、コマンドの引数として渡すようになりました
GitHub Actions 上でファイルを編集し、変更差分が出た場合に警告が出る場合があります
その場合は --commit-dirty=true を付けると良さそうです (公式ドキュメントから見つけられず)
command: pages deploy .vercel/output/static --project-name project --commit-dirty=trueまた、出力内容も少し変わっており URL を取得する場合には deployment-url に変わっていました
- steps.cloudflare_pages_deploy.outputs.url+ steps.cloudflare_pages_deploy.outputs.deployment-url
以上で、移行ができました 🎉
おわりに
Cloudflare は幅広くいろいろできるので wrangler CLI コマンドにも詳しくなりたいですねー 🐶