GitHub ActionsのGitHub-hosted runnerでx64版のubuntu-latestを使っているなら、2026年10月19日の移行開始前にubuntu-26.04を明示したテストを行ってください。まだ準備できないワークフローは、ubuntu-24.04へ一時固定する方法があります。ただし固定は恒久対策にせず、解除予定日と担当者を管理することが重要です。
GitHubはUbuntu 26.04のGitHub-hosted runnerを一般提供し、x64版のubuntu-latestをUbuntu 24.04から26.04へ段階移行すると発表しました。基準日の2026年10月4日時点では移行前であり、完了済みではありません。プリインストール済みツールやシステムライブラリの差によってCIが壊れる可能性があるため、本番デプロイを伴わないブランチや検証用ワークフローで先に確認します。
Ubuntu 26.04への移行日程と対象
| 項目 | 内容 |
|---|---|
| Ubuntu 26.04 runner | 2026年9月17日にx64・arm64で一般提供 |
x64のubuntu-latest | 2026年10月19日から11月19日に、24.04から26.04へ段階移行予定 |
| 26.04を明示してテスト | x64はubuntu-26.04、Arm64はubuntu-26.04-arm |
| 準備未完了時の一時固定 | x64はubuntu-24.04 |
日程とラベルはGitHubの公式Changelogで案内されています。段階移行の予定は変更される可能性があるため、runner-imagesの公式告知Issueも確認してください。
ubuntu-latestは固定バージョンではない
ubuntu-latestは、Ubuntu提供元が公開した最新OSを常に指す名前ではなく、GitHubが提供する最新の安定runnerイメージを指します。GitHubのGitHub-hosted runnersリファレンスでも、-latestがOSベンダーの最新バージョンと一致するとは限らないと説明されています。
今回の段階移行中は、ubuntu-latestを指定した実行回やジョブで24.04と26.04が切り替わり得ます。ジョブログの「Set up job」を開き、実際に使われたイメージ情報と「Included Software」へのリンクを確認してください。
なお、ubuntu-24.04のようにOSラベルを固定しても、イメージ内のツールまで永久に同じになるわけではありません。GitHub-hosted runnerのイメージは継続的に更新されます。収録ツールと変更内容はactions/runner-imagesのREADME、イメージ別ツール一覧、リリースを基準に確認します。
移行で変わり得る箇所
OSが24.04から26.04へ変わると、プリインストールされたツール、パッケージ、システムライブラリ、コンパイラ、既成バイナリの互換性が影響を受ける場合があります。GitHubは一部ツールの更新や削除により、特定バージョンへ暗黙に依存するワークフローが壊れる可能性を案内しています。
アプリケーション用のNode.jsやPythonは、runnerに偶然入っている版へ依存するのではなく、actions/setup-nodeやactions/setup-pythonなど、利用するsetup Actionの現行READMEに従って明示します。OSラベルの指定と、アプリが使うランタイムの指定は別の管理項目です。

10月19日前に行う移行テスト
- すべての
runs-onを列挙する:.github/workflows内だけでなく、再利用可能ワークフロー、matrix、別リポジトリから呼び出すワークフローも確認します。ubuntu-latestを使うジョブと、本番デプロイを含むジョブを分けて把握します。 - 現在の実行環境を記録する:直近の正常ジョブで「Set up job」のイメージ情報とIncluded Softwareを確認し、runner-imagesのREADMEやリリースと照合します。
- ブランチで26.04を明示して実行する:既存のstepsは維持し、
runs-onだけをubuntu-26.04へ変えます。検証中は本番デプロイが自動実行されない条件やEnvironment承認を確認してください。 - 必要なツールを明示する:ランタイム、CLI、コンパイラなど、CIに必須のものをsetup Actionや公式の導入手順で用意します。プリインストールを前提にする場合は、イメージの収録一覧を確認します。
- テスト結果を広く確認する:単体テストだけでなく、ビルド成果物、コンテナ、キャッシュ、署名、周辺サービスとの接続、デプロイ先で必要になる互換性まで確認します。本番への自動デプロイで初回検証を行わないでください。
- 固定解除を管理する:24.04へ固定した場合はIssueなどに理由、担当者、再テスト日、固定解除予定日を残します。
Ubuntu 26.04で明示的にテストする例
既存ワークフローのstepsを保ったまま、検証用ブランチでruns-onを変更します。次はジョブ部分の最小例であり、これだけで独立したワークフローファイルにはなりません。cat /etc/os-releaseでOSの名前とバージョンを、uname -aでカーネル情報を確認できます。
jobs:
build:
runs-on: ubuntu-26.04
steps:
- run: |
cat /etc/os-release
uname -a
Arm64 runnerを使うジョブではubuntu-26.04-armを指定します。
ジョブが失敗する前に、ワークフロー自体が開始されない場合は、別記事「GitHub Actionsが実行されない原因と対処法」でトリガーやGITHUB_TOKENの条件を確認してください。
失敗したときの切り分け
- 最初に「Set up job」で、失敗したジョブが24.04と26.04のどちらで動いたかを確認します。
command not foundなら、ツールが26.04イメージに含まれるか、名称や導入方法が変わっていないかをrunner-imagesで確認します。- ビルドやリンクの失敗なら、システムライブラリ、コンパイラ、ネイティブ依存、事前生成バイナリへの依存を確認します。
- テストだけが失敗する場合は、OS環境へ暗黙に依存した前提がないかを調べ、24.04と26.04のログを比較します。
- 成果物やデプロイ工程で失敗する場合は、生成物の内容とデプロイ先の互換性を確認し、原因が分かるまで本番実行を止めます。
修正が移行開始に間に合わない場合は、次のようにubuntu-24.04へ一時固定します。
jobs:
build:
runs-on: ubuntu-24.04
steps:
- run: |
cat /etc/os-release
uname -a
固定はOS移行への対応時間を確保する措置です。ツール更新など別の原因によるCIの失敗まで防ぐものではありません。古いイメージを無期限に使う方針ではありません。原因修正後に26.04で再テストし、固定を解除します。
よくある質問
ubuntu-latestにすれば常に同じ環境へ固定できますか?
できません。latestはGitHubが選ぶ最新安定イメージへ移るラベルです。再現性を優先する期間はOSラベルを明示し、必要なツールやアプリ用ランタイムも別途指定します。
self-hosted runnerのUbuntuも自動で26.04になりますか?
今回の発表はGitHub-hosted runnerのイメージとubuntu-latestに関するものです。self-hosted runnerのOSは、この変更によって自動更新されるものではなく、運用者側で管理します。
GitHub ActionsのNode 24移行とは何が違いますか?
Ubuntu 26.04への移行は、ジョブを動かすrunnerのOSとプリインストール環境の変更です。一方、Node 24に関する変更はJavaScript Actionを実行するランタイムや、各Actionの対応状況に関する話です。また、アプリ自身が使うNode.jsの版はsetup-nodeなどで指定します。三つは関連して見えても別の層なので、個別に確認してください。
まとめ
x64版ubuntu-latestのUbuntu 26.04移行は、2026年10月19日から11月19日に予定されています。まず全ワークフローのruns-onを洗い出し、26.04を明示したブランチテストでツール、テスト、成果物まで確認します。準備が間に合わない場合は24.04へ一時固定し、解除日を管理したうえで修正を進めてください。


コメント