本文へ移動
開発ツール AI生成 文責 blackstrawberry

ubuntu-latest は10月19日から Ubuntu 26.04 へ、24.04 に留めるならピン留めが要る

GitHub Actions の ubuntu-latest は10月19日から11月19日にかけて Ubuntu 26.04 へ自動で移る。先に ubuntu-26.04 で試すか、ubuntu-24.04 にピン留めするかの二択。

10月19日〜11月19日 ubuntu-latest が Ubuntu 26.04 に切り替わる期間 changelog は「This migration will roll out gradually between October 19 and November 19, 2026」と記載。個別リポジトリの切り替え日は示されていない。

2026年10月19日から11月19日にかけて、GitHub Actions の ubuntu-latest が Ubuntu 24.04 から 26.04 へ段階的に移る。ワークフローファイルを書き換えなくても、この期間のどこかで ubuntu-latest を指定したジョブは自動的に 26.04 の上で走り始める。

GitHub の changelog は、この入れ替えがビルドを壊しうると明記している。26.04 のイメージは以前のイメージと比べてツールとそのバージョンが更新され、一部は削除されているからだ。壊れる側に回るのは、特定のソフトウェアバージョンやプリインストールのパッケージに依存しているワークフローになる。

先に 26.04 で試すか、24.04 に留めるか

changelog が挙げている準備は二つしかない。移行が始まる前に ubuntu-26.04 でワークフローを試すこと。まだ移る準備ができていないなら ubuntu-24.04 にピン留めして現行のイメージに留まること。どちらも変更するのはラベル一行だ。

試す側はこう書き換える。

jobs:
  build:
    runs-on: ubuntu-26.04

arm64 で走らせているジョブは ubuntu-26.04-arm を指定する。26.04 のランナーイメージは public preview を抜けて、x64 と arm64 の両方で本番のワークフロー向けに正式サポートの扱いになった。preview だから本番には回さない、という理由で保留していたなら、その理由は消えている。GitHub ホストの arm64 ランナー周りでは、CodeQL も 2.27.0 で Linux arm64 のネイティブ実行に対応している(別記事)。

留まる側も同じ一行の話だ。

jobs:
  build:
    runs-on: ubuntu-24.04

ピン留めは移行を止めるのではなく、自分のジョブを移行の対象から一時的に外すだけだ。 ubuntu-24.04 がいつまで提供されるかは changelog に書かれていない。期限のない延期として扱うと、次のイメージ更新のときに同じ作業がそのまま戻ってくる。ピン留めするなら、修正の期限は自分で決めることになる。

ラベルとイメージの対応

ラベル今のイメージ2026年11月19日より後
ubuntu-latestUbuntu 24.04Ubuntu 26.04(10月19日から段階的に切り替え)
ubuntu-26.04 / ubuntu-26.04-armUbuntu 26.04Ubuntu 26.04
ubuntu-24.04Ubuntu 24.04Ubuntu 24.04

出典:GitHub Changelog「Ubuntu 26 generally available and latest migration」(2026年9月17日公開)

明示ラベルを使っているジョブは、この移行では動かない。動くのは ubuntu-latest と書いてあるものだけだ。まず洗い出すべき対象はそこで決まる。

削除されたツールの名前は changelog に載っていない

changelog が書いているのは「更新され、場合によっては削除された」という範囲までで、どのツールがどのバージョンからどう変わったかの具体名は挙げていない。収録ソフトウェアの一覧を見る先とイメージの不具合を報告する先として runner-images リポジトリが、利用できるイメージ全体の説明として GitHub-hosted runners のドキュメントが案内されている。

一覧を先に眺めるより、ubuntu-26.04 で一度通してしまうほうが早い。失敗したときに見る場所は、依存の種類でだいたい割れる。apt-get install で入れているパッケージなのか、イメージに同梱されている言語ランタイムやビルドツールのバージョンなのかで、直し方が変わるからだ。前者はインストールの成否、後者はバージョン番号を前提にしたスクリプトが先に転ぶ。

自分のリポジトリがいつ切り替わるかは決め打ちできない

段階展開の順序や対象の選び方は changelog に書かれていない。10月19日の直後に切り替わるリポジトリもあれば、11月19日近くまで 24.04 のままのものもある、という読み方になる。ここは推測で、根拠は「gradually」という記述だけだ。切り替わり日を事前に知ってから動く、という計画は立たない。

順番としては、ubuntu-latest を使っているワークフローを列挙するところから始まる。そのうち本番のデプロイやリリース、タグ打ちに関わるものを先に ubuntu-26.04 で通す。通らないものは ubuntu-24.04 に固定して、修正日を決めてから戻す。10月19日より前に済ませる意味は、切り分けのしやすさにある。 移行ウィンドウが開いた後では、落ちたジョブの原因がイメージの変更なのか自分の変更なのか、判断に一手間かかる。

出典 種別について