はじめに
GitHub Actionsで「Node.js 20の対応終了」と聞くと、アプリ側のNode.jsを変更すればよいのか迷いそうです。今回は、Action自体を動かすNode.jsと、ビルドやテストに使うNode.jsの違いを整理しておきます。
※2026年9月23日までの公式情報をもとにした備忘録です。実際のワークフローでの動作検証は行っていません。
JavaScript Actionの実行環境がNode.js 24へ
GitHubは9月23日、ランナー上でJavaScript Actionを動かすNode.js 20の提供終了を発表しました。現在はNode.js 24が使われ、一時的にNode.js 20の利用を継続できたACTIONS_ALLOW_USE_UNSECURE_NODE_VERSIONも使えなくなっています。
対象はgithub.comとGitHub with Data Residencyです。GitHubの公式発表
setup-nodeのnode-versionとは別の話
ここが少しややこしいところです。
actions/setup-nodeのnode-versionは、後続のビルドやテストで使うNode.jsのバージョンを指定します。一方、Action自体の実行環境は、そのActionのaction.ymlにあるruns.usingで指定されます。
たとえば、setup-nodeのv5.0.0では次のようになっています。
runs:
using: 'node24'これはActionの定義の抜粋で、ワークフローに追記する設定ではありません。setup-node v5.0.0の定義
つまり、ワークフローのnode-versionだけを24に変更しても、利用しているActionの更新にはなりません。アプリ側のNode.jsの更新は、依存パッケージなどの互換性も含めて別途判断します。
利用しているActionを確認する方法
まずは.github/workflows/内のYAMLを開き、uses:で指定しているActionとバージョンを確認します。
確認するのは次の3点です。
- 利用中のActionにNode.js 24対応版があるか
- 更新先のリリースノートに破壊的変更がないか
- セルフホストランナーの場合、更新先が求めるランナーバージョンを満たすか
GitHubは、Node.js 24に対応した各Actionの最新版への更新を案内しています。更新後はワークフローを実行し、ビルドやテストが通るか確認します。
自作のJavaScript Actionなら、runs.usingをnode24へ変更し、互換性を確認して新しいリリースを公開する側になります。
なお、macOS 13.4以前やARM32のセルフホストランナーは今回の移行でサポート対象外です。該当する場合は実行環境の見直しも必要です。対応内容と制限
さいごに
今回まず確認するのは、uses:で指定しているActionのバージョンです。Node.jsの設定が2か所に登場するので、混同しないようにしたいですね。

コメント