概要
自分のブログサイトが GitHub Actions の cloudflare/pages-action を使って Cloudflare Pages へデプロイを行なっていますが、ちょっと前から Cloudflare Pages へのデプロイのたびに以下の警告が出るようになっていました。
Node.js 16 actions are deprecated.
Please update the following actions to use Node.js 20:
cloudflare/pages-action@1. For more information see:
https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
どうやらしばらく cloudflare/pages-action が保守されていない様子なので、これを機に cloudflare/wrangler-action に乗り換えたいと思います。
GitHub Actions の設定ファイル変更
以下の内容で変更します。
before
これは cloudflare/pages-action を使う設定です。
my-project は仮名ですので参考にする際は読み替えてください。
- name: Publish to Cloudflare Pages
uses: cloudflare/pages-action@v1
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
projectName: my-project
directory: ./public
after
以下のように cloudflare/wrangler-action を使うように変更します。バージョンはとりあえず現行の最新メジャーバージョンである @v3
を指定しています。
- name: Publish to Cloudflare Pages
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy ./public --project-name=my-project --commit-dirty=true
補足
--commit-dirty=true
をつけているのは以下警告への対応です。
[WARNING] Warning: Your working directory is a git repo and has uncommitted changes
To silence this warning, pass in --commit-dirty=true
これは、ウチの環境の場合はCI内で実行している静的サイトジェネレータのビルドコマンドによって public ディレクトリ内に生成した html ファイルをコミットせずに pages deploy
を実行していることによるものと思われます。public の成果物をコミットしていないのはウチでは意図的なものなのでこのオプションをつけて対応しています。
参考
基本的には公式のREADMEに沿っておけばOKです。