Ubuntu 26.04 の setup-swift:「Version "26.04" of Ubuntu is not supported」
ubuntu-latest は、2026年10月19日から11月19日にかけて Ubuntu 24.04 から 26.04 に移ります(ほかに変わること)。swift-actions/setup-swift は対応する Ubuntu の版を決まった一覧で持っていて、いちばん新しいリリースの v2.4.0(2025年11月)の一覧に 26.04 はありません。そのため、swift-version に何を指定しても、ツールチェーンをダウンロードする前にステップが落ちます。
どう見えるか
Run swift-actions/setup-swift@v2
Error: Unexpected error, unable to continue. Please report at https://github.com/swift-actions/setup-swift/issues
Version "26.04" of Ubuntu is not supported
Stacktrace:
Error: Version "26.04" of Ubuntu is not supported
at Object.getSystem (.../dist/index.js:436:15)
v2.4.0 の一覧は latest・24.04・22.04・20.04 で、Swift の版は 6.2.1 までです。この件の Issue は9月18日から開いたままで(setup-swift #805)、アクションを新しいインストーラーに移すプルリクエストもマージされていません。
26.04 向けのビルドがあるのは Swift 6.4 だけ
swift.org が Ubuntu 26.04 向けのツールチェーンを出しているのは Swift 6.4.0(2026年9月14日)からです。Swift 6.3.3 以前は Ubuntu 22.04 と 24.04 向けだけなので(Swift のインストールのページ)、新しいアクションに替えても古い版は入りません。古い Swift の 24.04 向けのビルドは 26.04 でも起動しますが、Foundation を使うビルドは libxml2.so.2 を探し、26.04 にあるのは libxml2.so.16 です(Ubuntu 26.04 の「cannot open shared object file」)。
報告のあったもの
- リリース候補の確認のジョブが、26.04 のイメージで
setup-swiftのステップで落ち、そのジョブをubuntu-24.04に固定して直しました(arrow-swift #199・#200)。 - Swift 6.1 の Linux のテストのジョブが、
ubuntu-latestでビルドより前のツールチェーンの準備で止まり、ubuntu-24.04に固定されました(swift-sdk #320)。
Swift 6.4 なら:イメージの Swift を使う
24.04 と 26.04 のイメージには、どちらも Swift 6.4.1 がすでに入っています(イメージの readme)。プロジェクトが 6.4 でビルドできるなら、setup-swift のステップを外し、ログに版が残るように表示しておきます:
- run: swift --version - run: swift build
GitHub がイメージを更新すると、入っている Swift も一緒に変わります。版を1つに決めたいなら、下のコンテナを使います。
古い Swift なら:ジョブを Swift のコンテナで動かす
jobs:
test:
runs-on: ubuntu-latest
container: swift:6.2-noble
steps:
- uses: actions/checkout@v7
- run: swift test
公式の swift のイメージには、版と Ubuntu のリリースごとのタグ(6.1-noble・6.2-noble・6.3-noble・6.4-resolute など)があるので、ランナーのイメージが何であっても、ツールチェーンとそのライブラリが同じ Ubuntu から来ます。
または、ランナーを固定する
runs-on: ubuntu-24.04 にすれば、上の2つのプロジェクトのように setup-swift の v2 がそのまま動きます。GitHub がそのイメージを終えるまでは使えます。
見分け方
- 「is not supported」は、ダウンロードより前にアクションが出します。
ubuntu2604を含む「does not exist at URL」なら、インストーラーは swift.org に届いていて、その版に 26.04 向けのビルドがありません。 - 「Set up job」の Runner Image のグループにイメージが出ます。11月19日までは、再実行が 24.04 に当たって通ることがあるので、再実行が緑でも何も確かめたことになりません。
ほかの 26.04 の失敗
- Ubuntu 26.04 の wg-quick の「Permission denied」:新しい AppArmor のプロファイルで、
wg-quickとwgは設定とキーのファイルを/etc/wireguard/の下でしか読めないので、ワークスペースのwg0.confはsudoでも落ちます。 - Ubuntu 26.04 の「cannot open shared object file」:libxml2 は
libxml2.so.16、ICU は 78 なので、24.04 で保存したキャッシュや 24.04 向けのバイナリがlibxml2.so.2やlibicudata.so.74を見つけられません。 - Ubuntu 26.04 の Docker-in-Docker:古い iptables のモジュールが読み込まれていないので、
iptables-legacyを使うコンテナの中の dockerd(dev container の docker-in-docker 機能の:2や:3など)が「can't initialize iptables table `nat'」で落ちます。機能を:4に上げるか、ランナーでモジュールを読み込みます。 - Ubuntu 26.04 の pg_dump 18:イメージと apt の PostgreSQL が 18 なので、ダンプが
SET transaction_timeout = 0で始まり、PostgreSQL 16 のサービスが「unrecognized configuration parameter」で断ります。 - Ubuntu 26.04 の apt:名前が変わった・無くなったパッケージ。
- 「coreutils: unknown program」:基本のコマンドのほとんどが uutils です。
失敗したジョブを IntelliJ IDEA から見るなら
Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べ、いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。
GitHub と GitHub Actions は GitHub, Inc. の商標、Ubuntu は Canonical Ltd. の商標、Swift は Apple Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・Canonical・Apple Inc.・Swift のプロジェクト・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:「The ubuntu-latest label will migrate to Ubuntu 26」 · Ubuntu 26.04 の「cannot open shared object file」 · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English