メインコンテンツまでスキップ

ビルドの際に「Node.js XX actions are deprecated」などの警告が出ますが解消できますか?

YAMLファイルに記載されているアクションのバージョンを更新すると、警告を解消できます。
警告が表示されているだけであれば、KurocoFrontへのデプロイには影響しません。

症状​

KurocoFrontへデプロイするGitHub Actionsのワークフローを実行すると、Node.js XX actions are deprecated.(XXにはNode.jsのバージョンが入ります)のような、アクションの非推奨に関する警告が表示されます。

以下は Node.js 12 の場合の表示例です。

Image from Gyazo

原因​

GitHub Actionsのアクション(actions/checkout、actions/setup-nodeなど)は、アクションのバージョンごとに特定のバージョンのNode.js上で動作します。
GitHub側でそのNode.jsのバージョンが非推奨になると、該当するバージョンのアクションを使用しているワークフローで警告が表示されます。

[KurocoFront]->[Github]に表示されるYAMLファイルのサンプルは、警告の出ないバージョンに随時更新しています。ただし、YAMLファイルを作成した時期によっては、古いバージョンのアクションが記載されたままになっている場合があります。

デプロイへの影響​

警告のみの場合​

警告(warning)はワークフローの実行を止めません。ワークフローが最後まで成功していれば、KurocoFrontへのデプロイは行われます。

KurocoFrontのサンプルYAMLファイルでは、以下の順にステップが実行されます。

  1. ビルドを実行し、静的ファイルを生成する
  2. 生成した静的ファイルをアーティファクトとしてアップロードする(actions/upload-artifact)
  3. Webhookステップで、トークン付きのリクエストをKurocoに送信する

Kurocoはリクエストを受け取ると、アップロードされたファイルを取得してKurocoFrontへデプロイします。静的ファイルが生成され、トークン付きのリクエストがKurocoに送信されていれば、警告が表示されていてもデプロイされます。

デプロイに影響する場合​

ワークフローのいずれかのステップがエラー(失敗)で停止すると、以降のステップは実行されません。Webhookステップまで到達しないため、KurocoFrontへのデプロイは行われません。

非推奨のアクションを使い続けると、GitHub側でそのバージョンの提供が終了した時点で、警告ではなくエラーとなりワークフローが停止する場合があります。
例えば、actions/upload-artifact@v3は2025年1月30日に提供が終了しており、使用するとワークフローが失敗します(Deprecation notice: v3 of the artifact actions)。

警告が表示された時点で、早めにアクションのバージョンを更新してください。

確認方法​

  1. GitHubのリポジトリで[Actions]タブを開き、警告が表示されたワークフローの実行結果を選択します。
  2. ジョブが成功しているか、失敗(エラー)で停止しているかを確認します。
  3. 警告メッセージまたはエラーメッセージに記載されているアクション名とバージョン(例: actions/checkout@v2)を確認します。
  4. リポジトリの.github/workflows/配下のYAMLファイルを開き、uses:に該当するアクションが記載されている箇所を確認します。

デプロイが行われたかどうかは、管理画面の[チャネル] -> [WEB] -> [KurocoFront設定]にある「KurocoFrontヒストリー」で確認できます。

解決方法​

YAMLファイルのuses:に記載されているアクションのバージョンを、警告の出ないバージョンに更新します。

KurocoFrontのサンプルYAMLファイルでは、主に以下のアクションを使用しています。

actions/checkout
actions/setup-node
actions/upload-artifact

更新先のバージョンは、[KurocoFront]->[Github]に表示される最新のサンプルYAMLファイル、または各アクションのGitHubリポジトリ(Releases)で確認できます。

以下は@v3から@v4に更新する場合の例です。

       - name: Checkout Repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Use Node.js
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
       - name: Archive Production Artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4

KurocoFrontのサンプルYAMLファイルでは、プルリクエスト時のビルドとプッシュ時のビルドのそれぞれに同じアクションが記載されています。YAMLファイル内で該当するアクションが記載されている箇所をすべて更新してください。

更新したYAMLファイルをコミットしてプッシュし、ワークフローの実行結果に警告が表示されなくなったことを確認します。

注意

アクションのメジャーバージョンを更新すると、指定できるパラメータや動作が変わる場合があります。更新前に各アクションのリリースノートを確認し、更新後にワークフローが正常に完了してKurocoFrontへデプロイされることを確認してください。

注記

actions/setup-nodeのnode-versionは、ビルドで使用するNode.jsのバージョンを指定する設定です。アクション自体が動作するNode.jsのバージョンとは別の設定のため、使用しているフレームワークの要件に合わせて設定してください。

再発防止​

Dependabotを利用すると、使用しているアクションを最新バージョンに保つことができます。設定方法はGitHub Actionsワークフローのアクションを最新バージョンに保つ方法はありますか?をご確認ください。

また、アクションの非推奨に関するお知らせはGitHub Changelog - Actionsで確認できます。

関連ドキュメント​


サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。