GitHub Actions の「node-version: latest」で Node.js 27.0.0-alpha.0.0.0 が入る:setup-node・新しい Alpha の段階・'*' と lts/*
2026年10月29日、Node.js は 27.0.0-alpha.0.0.0 を出しました。新しいリリースの予定で、各メジャーの前に置かれた Alpha の段階の最初のリリースで、27.0.0 そのものは2027年4月22日の予定です。このアルファは nodejs.org/dist/index.json のいちばん上にあり、actions/setup-node は node-version: latest・current・node に、プレリリースも含めてこの一覧のいちばん上を使います。そのため「latest」を頼んだワークフローは、いまはアルファを npm 12.1.0 と一緒に動かします。nodejs.org の latest のフォルダーにあるのは、10月28日から Active LTS の 26.13.0 です(setup-node #1660)。
見え方
アルファは GitHub 自身の manifest に無いので、セットアップのステップは nodejs.org から直接ダウンロードし、環境の詳細にその版が出ます。setup-node #1657 の実行から:
Attempting to download 27.0.0-alpha.0.0.0... Not found in manifest. Falling back to download directly from Node Acquiring 27.0.0-alpha.0.0.0 - x64 from https://nodejs.org/dist/v27.0.0-alpha.0.0.0/node-v27.0.0-alpha.0.0.0-linux-x64.tar.gz ... Environment details node: v27.0.0-alpha.0.0.0 npm: 12.1.0 yarn: 1.22.22
ジョブはたいてい、そのあとの版の名前が出てこないステップで失敗します。Node.js のプロジェクトが、よく使われるパッケージをアルファで試した結果から:
- 何も出力しないことを期待するテストに
[DEP0032] DeprecationWarning: The `domain` module is deprecatedが出ます。この非推奨が実行時に表示されるようになったからです(gulp・citgm #1230)。 - npm 12 は、知らないコマンドラインのフラグを警告ではなくエラーにします。
npm install --log-level infoは失敗し、--loglevelなら通ります(citgm #1229)。npm 12 は既定で git の依存も断り、install scripts も飛ばします(GitHub Actions の npm 12)。 - ヒープの上限の既定が変わります。
--max-old-space-sizeが無いと、搭載されているメモリの半分(256 MB から 4 GB の間)になり、Buffer と ArrayBuffer が持つメモリもそこに数えられます。リリースノートは、前の既定に頼っていたアプリケーションにこのフラグを指定するよう書いています。
Intel の macOS では、ビルドそのものがありません。アルファには darwin-arm64 のアーカイブはあっても darwin-x64 のものが無く(同じリリースで Intel の macOS のサポートが試験的なものに下がりました)、macos-15-intel や macos-26-intel では latest が、そのランナー向けにダウンロードできるものが無い版を指します。Node.js を入れる別の道具は「Hash not found for node-v27.0.0-alpha.0.0.0-darwin-x64.tar.gz in SHASUMS256.txt」で止まりました(vite-plus #3290)。
いちばん新しい安定版に留まる
node-version: '*'は、プレリリースでないいちばん新しい版を入れます。いまは 26.13.0 です(setup-node #1660)。YAML では引用符で囲みます。node-version: lts/*も、いまは同じ 26.13.0 です。2つが分かれるのは2027年4月22日で、'*'は 27.0.0 が Current になると 27.0.0 に移り、lts/*は 27 が LTS になる2027年10月まで 26 のままです。node-version: 26は1つのメジャーの系統を追い、プレリリースは選びません。
11月3日に setup-node の担当者が、latest・current・node を nodejs.org に合わせて、いちばん新しい安定版を指すようにすると書きました。11月5日の時点でこの変更はまだリリースされておらず、setup-node のいちばん新しいリリースは10月8日の v7.1.0 のままです。出れば、@v7 のワークフローはタグが動いたときに受け取り、版やコミットの SHA で固定しているなら更新が要ります。
わざとアルファで試すなら
- いま通るのは正確な版だけです:
node-version: 27.0.0-alpha.0.0.0。27・27.0.0・27.0.0-alphaは認識されないので、アルファが出るたびに書き換えが要ります。setup-python にあるようなallow-prereleasesの入力は要望が出ていますが(setup-node #1657)、まだありません。 - マトリックスの別の1本にして
continue-on-error: trueを付け、アルファでの失敗がマージを止めないようにします。 .nvmrc・.node-version・Volta の設定を変える自動のプルリクエストを確かめます。同じ一覧から「latest」を読む更新の道具が、27.0.0-alpha.0.0.0 をいちばん新しい版として出しています。たとえば.nvmrcを 26.8.1 から上げるもので(kompagnon-app #149)、node-version-fileはファイルに書かれた版をそのまま入れます。
見分け方
- Docker の
node:latestのイメージで動くジョブには関係ありません。アルファのイメージを足す変更は、27.0.0-alpha.0.0.0-alpine3.23のような正確なタグしか付けていません(docker-node #2678・11月5日の時点で未マージ)。 - セルフホストのランナーでは、
nvm install nodeやn latestもアルファを入れます(nodejs/node #67135)。 - npm 12 は、どの Node.js でも
npm install -g npm@latestから入ることがあります。その直し方は npm 12 のページにあります。
失敗したジョブを IntelliJ IDEA から見るなら
Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べるので、Node.js の版が動いて失敗し始めたマトリックスの1本がすぐ分かり、いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。
GitHub・GitHub Actions は GitHub, Inc. の商標、Node.js は OpenJS Foundation の商標、npm は npm, Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・OpenJS Foundation・npm, Inc.・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:GitHub Actions の npm 12:「EALLOWGIT」と止められた install scripts · 「Node.js 20 actions are deprecated」 · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English