GitHub Actions Node 20廃止後のMac CI故障は、まずJavaScript Actionの実行ランタイムとプロジェクト自身のNode.jsを切り分けてください。該当ActionをNode 24対応版へ更新し、macOSの互換性も確認してから、実際のビルドとテストで復旧を判定します。
企業IT担当者:影響するワークフローと復旧の優先順位を判断したい方。
プラットフォームエンジニア:自托管Mac Runner、共通Action、組織テンプレートを管理する方。
iOS/macOSのリリース担当者:重要なビルド、テスト、公開処理の再開可否を確認する方。
今週の推奨作業: 失敗ログとActionのメタデータを照合し、原因が特定できるまでRunnerの交換や増設は保留してください。最終更新:2026年10月21日。Node 20の移行状況はGitHub公式告知で、Actionの設定項目はGitHubのメタデータ仕様で確認しています。
01Node 20廃止で変わった実行境界
GitHubは2026年9月23日、GitHub Actions Runner上でJavaScript Actionを動かすNode 20ランタイムを削除し、Node 24へ切り替えました。一時的なオプトアウト用設定も利用できません。これはActionの実行環境の変更であり、プロジェクトが別途インストールするNode.jsを一律に削除したものではありません。告知の移行内容を、エラーの対象範囲と混同しないようにします。
たとえば、ログがActionの起動時にランタイム非対応を示すなら、まずAction側を調べます。一方、Actionの実行後にnpm依存関係の導入やアプリのビルドが失敗するなら、ワークフローで指定したNode.jsのバージョンやプロジェクトの依存関係も確認します。GitHubのNode.jsワークフローガイドでも、ワークフロー上で使うNode.jsの準備手順が説明されています。
影響範囲を絞らずにRunnerを交換すると、原因を残したまま環境だけが変わるおそれがあります。Action、プロジェクト、OS・アーキテクチャをそれぞれ別の確認対象にしてください。
02GitHub Actions Node 20 Mac CIの障害を指標で切り分ける
エラーが出た処理と、確認すべき証拠を対応させます。Action名だけで判断せず、ワークフローが実際に解決した参照バージョンとRunnerの情報も記録します。
| 確認指標 | 記録する証拠 | 判断の目安 |
|---|---|---|
| 実行対象 | 失敗したステップ、Action名、エラーログ | Actionの初期化失敗か、プロジェクト処理の失敗かを区別します |
| Actionの実装 | Actionの参照バージョン、action.ymlのruns.using |
JavaScript ActionがNode 24対応か確認します |
| Runner環境 | macOSバージョン、プロセッサーアーキテクチャ | Node 24のOS・アーキテクチャ制限と照合します |
| 実ジョブの結果 | Action初期化、依存関係導入、Xcodeビルド、テスト | 重要な処理が一連のジョブで完了するかを判定します |
メタデータでは、JavaScript Actionのランタイムがruns.usingに記載されます。項目の意味はGitHubのActionメタデータ仕様を参照し、実際に使っているActionの定義と比較します。自作Actionの更新手順はJavaScript Action作成ガイドで確認できます。
03Runnerがオンラインであることや、単独のActionが起動したことだけでは復旧確認になりません。Xcodeのビルド、必要なテスト、成果物の受け渡しまで、重要なワークフローで確かめてください。
修正はAction更新を先に検討する
最初に、ワークフロー、再利用ワークフロー、複合Action、組織共通テンプレートから呼び出すJavaScript Actionを洗い出します。参照先が可変タグの場合は、実行時にどの版が使われたかもログや定義で追える形にします。ワークフローの参照形式はGitHubのワークフロー構文で確認できます。
更新候補は、Node 24対応が確認できるリリースから選びます。いきなり全ワークフローを切り替えず、影響範囲を限定した検証用ジョブで入力、出力、失敗時の処理、後続タスクとの接続を確かめます。自作Actionなら、保守担当がランタイム宣言と依存関係を更新し、新しい版を公開してから利用側の参照を変更します。
判断条件で修正範囲を決める
- ログがJavaScript Actionの起動・初期化を示し、利用中のActionにNode 24対応版がある場合は、その版を隔離ジョブで検証してから更新します。
- 自作Actionが旧ランタイムを宣言している場合は、Actionの保守担当が実装と依存関係を確認し、Node 24対応版を公開します。
- RunnerがmacOS 13.4以前の場合は、Node 24のOS互換性を別途調べます。Action更新だけで解消すると決めつけず、サポート対象となる環境への変更を検討します。
- アーキテクチャ制限が原因と確認できた場合に限り、Macノードの構成変更を候補にします。すべてのApple Silicon環境が対象だと拡大解釈してはいけません。
- Actionの起動後にプロジェクトの依存関係やビルドが失敗する場合は、Runner交換より先に、その処理が参照するNode.jsと依存関係を調べます。
Runner互換性と実タスクの合格を分けて確認する
Node 24はmacOS 13.4以前とARM32を正式にサポートしないとGitHubが案内しています。macOSバージョンやアーキテクチャが条件に該当するかは、自托管Runnerの選択・構成ガイドと自托管Runnerの資料も参照して確認してください。これらの制限は、すべてのMacやApple Silicon搭載機にそのまま当てはまるものではありません。
たとえば、共有のMac RunnerでActionの初期化だけ直ったように見えても、Xcodeのビルドやテストが未確認なら、リリース作業を再開する根拠には不足します。確認対象となるワークフローを実行し、RunnerのOS・アーキテクチャ、Actionの参照バージョン、エラーの有無、各処理の結果を記録します。
放行するのは、重要なビルドとテストが通り、成果物の受け渡しを含む必要な処理が確認できた場合です。結果が不明確なら、対象を限定した隔離検証を続けます。失敗が再現する場合は公開を保留し、ログと確認済みの環境情報を添えて担当者に戻します。
05チームで保守するための段階的な確認手順
最初に記録をそろえます
対象ジョブの失敗ログを保存し、失敗したステップとActionの参照を記録します。RunnerのmacOSバージョンとアーキテクチャも同じ記録に含め、Actionの問題と環境の問題を後から混同しないようにします。
Action参照とランタイム宣言を照合します
共通テンプレートや複合Actionを含め、実際に呼び出されるJavaScript Actionを確認します。runs.usingにNode 20が残っていないか、参照した版の定義とリリース情報を調べます。
変更を限定した検証を行います
更新候補を隔離したワークフローで動かし、入力・出力とエラー時の挙動を確かめます。変更前後のログを並べ、ランタイム以外の変更が混ざっていないかも確認します。
Runner側の互換性を調べます
OSとプロセッサーアーキテクチャを記録し、Node 24の公式制限に照らします。OS更新やノード変更は、Action側を直しても問題が残るなど、環境が原因だと示す証拠がある場合に検討します。
重要な仕事で復旧を判定します
Actionの初期化だけでなく、依存関係の導入、Xcodeビルド、必要なテスト、成果物の受け渡しを含む実ジョブを確認します。自托管Mac Runnerの配置や運用要件を見直す場合は、GitHubのRunner選択に関する説明も参照してください。
放行条件と保守責任を残します
どのチームがActionを更新するか、OS・アーキテクチャの対応境界、再確認が必要となる条件を記録します。Actionの更新後やRunnerのOS変更後には、重要なジョブを再検証する運用にします。
06現行運用とMac環境の選択肢
既存の自托管Macを使い続ける方法は、環境を把握しやすい一方、OS更新、Runnerの保守、Actionの互換性確認を自社で担います。共用ノードに変更を一度に適用すると、原因の切り分けが難しくなります。短期間の検証環境を追加したい場合は、購入・保守を伴う実機増設と、必要な期間だけMac環境を利用する方法を、分離要件や実際の提供条件に照らして比べてください。
| 選択肢 | 判断しやすい条件 | 注意点 |
|---|---|---|
| 現行Runnerを修正 | ログからActionまたは既知の設定が原因と判断できる | OS・アーキテクチャの境界と変更責任を記録します |
| 対応するMac環境を用意 | 実機のOSやアーキテクチャが制約に該当すると確認できた | 環境を替えただけでActionやプロジェクトの問題が解消するとは限りません |
| 遠隔Mac環境を評価 | 追加の検証環境が必要で、提供OS・接続方法・分離条件を確認できる | 実際の環境情報と受け入れ試験に基づき、本番適合性を判断します |
VpsMeshのMac利用を検討する場合も、必要なmacOS環境、アクセス方法、チームの分離要件が満たされるかを先に確認してください。サービス内容の確認先として、VpsMeshの案内とMac miniの利用案内を参照できます。記載内容だけでNode 24対応を決めず、実際のRunner情報とワークフローで受け入れ検証を行います。
07よくある質問
Node 20の廃止後にMac CIで何が失敗しますか
影響を受けるのは、旧ランタイムを指定したJavaScript Actionの実行です。プロジェクトが別途インストールするNode.jsまで削除されたわけではありません。ログに出たAction名と失敗ステップを特定し、Actionの定義とワークフロー上のNode.js設定を別々に調べてください。
ActionランタイムとプロジェクトのNode.jsはどう区別しますか
Actionの初期化時に失敗していれば、メタデータのruns.usingと実行したActionの版を確認します。依存関係の導入やビルド時に失敗した場合は、ワークフローが準備したNode.jsの版やプロジェクト依存関係も確認します。ログと設定の対応が取れるまで、Runner交換を先行させないでください。
古いJavaScript ActionをNode 24対応にするにはどうしますか
既存ActionのNode 24対応版があれば、そのリリースを隔離したジョブで検証します。入力・出力、失敗時の処理、後続ステップまで確認してから、利用中の参照を更新します。自作Actionでは保守担当がメタデータと依存関係を更新し、新しい版を公開して利用側に反映します。
自托管Mac RunnerのmacOSはNode 24に影響しますか
影響します。GitHubの案内では、Node 24はmacOS 13.4以前とARM32を正式サポートしません。RunnerのOSとアーキテクチャを確かめて、Action側の対応状況とは分けて判定してください。この制限を、すべてのApple Silicon Macに当てはめるのは誤りです。
修復後も現行環境だけでは重要なiOSビルドの検証を進めにくいなら、まず必要なmacOS、分離条件、検収タスクを定義してください。社内Runnerの保守にはOS更新やActionの継続確認が伴い、実機の増設には調達と維持管理が伴います。期間限定の検証環境が必要な場合は、VpsMeshの遠隔Macも実際の提供環境を確かめたうえで比較できます。恒常的な高負荷や物理接続が必須なら、自社保有を含めて選ぶのが適切です。