GitHub Actions:「The ubuntu-latest label will migrate to Ubuntu 26」
GitHub は ubuntu-latest のラベルを Ubuntu 24.04 から Ubuntu 26.04 へ移しています。ubuntu-latest を指定したジョブには、すべて注釈にこの知らせが付きます(「ubuntu-latest のラベルは2026年10月19日から Ubuntu 26 に移る」):
The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748
知らせそのものは何もしません。大事なのは、移行がもう始まっていることです。10月19日から数週間かけて少しずつ切り替わり、2026年11月19日に終わる予定です(runner-images #14748)。それまでは、同じワークフローでも、あるジョブは24.04、次のジョブは26.04 に当たることがあり、その issue のコメントには、リポジトリを何も変えていないのに、ジョブが26.04 に当たってから落ち始めたビルドの話が出ています。対象は x64 のラベルで、ubuntu-24.04-arm と ubuntu-slim は影響を受けるイメージの一覧に入っていません。
ジョブがどちらのイメージだったか
ジョブの「Set up job」のステップを開きます。Runner Image のまとまりに名前が出ます:
Runner Image Image: ubuntu-24.04 Version: 20261025.353.1
新しいイメージでは ubuntu-26.04 と出て、その上の Operating System のまとまりも26.04 になります。ほかを疑う前に、失敗したジョブと最後に通ったジョブでここを比べてください。再実行は別のイメージに当たることがあるので、11月19日までは、再実行で通っても何の証明にもなりません。
壊れるもの
Java:既定が25になり、JDK 8 が無い
イメージのツールの一覧では、26.04 の既定の JDK は25(24.04 では17)で、入っているのは11・17・21・25、8 はありません(11月3日の actions/runner-images の toolset-2604.json)。告知の表はまだ17のままですが、イメージ自身の文書は25です。Gradle が Java 25 の上で動くのは 9.1.0 からなので(Gradle の互換の表)、JDK を選ばずに Gradle 8 以前を動かすジョブは、ビルドスクリプトのコンパイル中に次のようなエラーで落ちます:
Unsupported class file major version 69
プロジェクトの Android の Gradle ラッパーを動かす flutter build apk も同じです。JDK を自分で選ぶか、ラッパーを Gradle 9.1 以降に上げてください:
- uses: actions/setup-java@v6
with:
distribution: temurin
java-version: '17'
17 は26.04 にもまだ入っているので、1ステップでも足ります:echo "JAVA_HOME=$JAVA_HOME_17_X64" >> "$GITHUB_ENV"。26.04 では JAVA_HOME_8_X64 はありません。
Python:3.8 と 3.9 が無く、新しいパッチ版だけ
actions/setup-python は、ランナーの Ubuntu の版ちょうどに向けて作ったビルドをダウンロードします。11月3日のビルドの一覧には、26.04 向けの3.8 と3.9 が無く、ほかも新しいパッチ版だけでした:3.10.20〜3.10.22・3.11.15〜3.11.18・3.12.13〜3.12.16・3.13.13〜3.13.18・3.14.6〜3.14.10(actions/python-versions の versions-manifest.json)。3.12.4 のような古い固定や、それを書いた .python-version は、次のようなメッセージでセットアップの段で落ちます:
The version '3.9' with architecture 'x64' was not found for ubuntu 26.04.
マイナー版("3.12")で指定するか、古い版は24.04 に残します:
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
os: [ubuntu-latest]
include:
- python-version: "3.9"
os: ubuntu-24.04
runs-on: ${{ matrix.os }}
ほかに報告されている変化
sudo -E:あるプロジェクトの CI がsudo -Eのステップで落ち、報告では代わりに要る変数を--preserve-env=で渡すよう勧めています(11月2日の runner-images #14748 のコメント)。- Docker:ツールの一覧では、26.04 は Docker 29.4.2、24.04 は 28.0.4 です。
- カーネル(7.0)と systemd(259)も新しくなります(告知の表)。
どうするか
- いまのままにするなら、古いイメージを名前で指定します。知らせも消えます:
runs-on: ubuntu-24.04
- 自分の都合で移るなら、まずブランチか追加のマトリックスの組み合わせで
runs-on: ubuntu-26.04を試し、落ちたところを直してから、ubuntu-latestに戻すかubuntu-26.04のままにします。 - ワークフローの側では直せない26.04 の不具合は、告知が actions/runner-images に issue を立てるよう求めています。
Azure Pipelines
告知は Azure DevOps も対象に挙げていて、vmImage: ubuntu-latest が同じように移ります。10月26日のコメントは、Microsoft のホストのエージェントのページがまだ ubuntu-latest を24.04 としていると指摘していましたが、11月2日には、vmImage を書いていないパイプラインが26.04 で動き、権限のエラーで落ちました(runner-images #14748 のコメント)。26.04 ではエージェントのユーザーが vsts から runner に変わり、そのホームディレクトリの下のパスも変わります(runner-images #15028)。vmImage: ubuntu-24.04 なら古いイメージのままです。
どのジョブが落ちたかを IntelliJ IDEA から見るなら
Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べるので、移行の途中で落ち始めたジョブが、通ったジョブの横で目立ちます。いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。
GitHub と GitHub Actions は GitHub, Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標、Ubuntu は Canonical Ltd. の商標です。このページは GitHub, Inc.・JetBrains・Canonical のいずれとも提携しておらず、承認も受けていません。
ほかに:ホストランナーの「No space left on device」 · 「Node.js 20 is deprecated」の警告 · macOS 14 のイメージの終わり · デバッグログ付きでジョブを再実行する · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English