Ubuntu 26.04 の PyCQA/bandit-action:「The version '3.8' with architecture 'x64' was not found」
ubuntu-latest は、2026年10月19日から11月19日にかけて Ubuntu 24.04 から 26.04 に移ります(ほかに変わること)。actions/setup-python の 26.04 向けのビルドは Python 3.10 からです(versions-manifest.json)。PyCQA の Bandit のアクションは、自分で Python をセットアップします。README が使うように書いている v1 のタグは、いまも v1.0.0(2024年6月)を指していて 3.8 を求め、v1.0.1 は 3.9 を求めます。どちらにもそれを変える入力が無いので、Bandit がインストールされる前にジョブが落ちます。
どう見えるか
Version 3.8 was not found in the local cache ##[error]The version '3.8' with architecture 'x64' was not found for Ubuntu 26.04. The list of all available versions can be found here: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json
ワークフローに setup-python のステップが無くても、アクションのステップの下に、その中の actions/setup-python@v5 のステップから出ます。@v1.0.1 では、メッセージのバージョンが 3.9 になります。
報告のあったもの
PyCQA/bandit-action@v1を使うプロジェクトの Bandit のチェックが、3.8 のメッセージで7秒で落ち、すべてのブランチの直近10回の実行が同じように落ちていました(lightspeed-stack #3141)。- アクション自身への報告は v1.0.1 と 3.9 のものです(bandit-action #48)。既定を 3.13 に変えるプルリクエストが開いていて(#49)、これを避けるために Bandit のジョブを
ubuntu-24.04に移した別のプロジェクトを挙げています。
直し方:Bandit を自分のステップで動かす
アクションの中のステップと同じものを、26.04 にある Python で動かします:
jobs:
bandit:
runs-on: ubuntu-latest
permissions:
security-events: write
actions: read
contents: read
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: '3.13'
- run: pip install 'bandit[sarif,toml]'
- run: bandit -r . -f sarif -o results.sarif || true
- uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: results.sarif
アクションと同じく、Bandit の終了コードは見ずに結果を code scanning に送るので、見つかった問題でジョブは落ちません。アクションに入力で渡していたオプション(-c・-s・-x・--severity-level など)は bandit の行に足します。いまの Bandit 1.9.4 は Python 3.10 以降が必要なので、古い Python では古い Bandit が入ります。
または、入力があるコミットでアクションを使い続ける
- uses: PyCQA/bandit-action@7925d472505a4ec09ef471b22fe99c26fee47443 # main, October 27, 2026
with:
python-version: '3.13'
python-version の入力は v1.0.1 の後の2025年9月に main に入り、まだリリースされていません。そこでも既定は 3.9 のままなので、必ず指定します。@v1 や @v1.0.1 に同じ入力を書いても警告(「Unexpected input(s)」)が出るだけで、アクションは 3.8 か 3.9 を求めたままです。
または、ランナーを固定する
Bandit のジョブを runs-on: ubuntu-24.04 にします。setup-python には 24.04 向けの 3.8 と 3.9 のビルドがあるので、アクションはそのまま動きます。GitHub がそのイメージを終えるまでは使えます。
見分け方
- 自分の setup-python のステップから同じメッセージが出るなら、一般の場合です:setup-python の「was not found」。
- アクションが setup-python を通り、Bandit が問題を報告したのにジョブが緑:アクションは Bandit の終了コードを見ないので、これは正常です。結果は code scanning にあります。
- 「Set up job」の Runner Image のグループにイメージが出ます。11月19日までは、再実行が 24.04 に当たって通ることがあるので、再実行が緑でも何も確かめたことになりません。
ほかの 26.04 の失敗
- GitHub の Ubuntu のランナーの syscalls:sys_enter_* の BPF:24.04 と 26.04 のイメージのカーネル 7.0.0-1017-azure では、これらのプログラムが1つの CPU でしか動かないので、eBPF のテストがエラーなしにイベントを失います。
ubuntu-22.04は当たりません。 - Ubuntu 26.04 の wg-quick の「Permission denied」:新しい AppArmor のプロファイルで、
wg-quickとwgは設定とキーのファイルを/etc/wireguard/の下でしか読めないので、ワークスペースのwg0.confはsudoでも落ちます。 - Ubuntu 26.04 の setup-swift:
swift-actions/setup-swiftの v2 は「Version "26.04" of Ubuntu is not supported」で止まり、swift.org の 26.04 向けのビルドは Swift 6.4.0 からです。イメージの Swift 6.4.1 か、swiftのコンテナを使います。 - Ubuntu 26.04 の setup-ruby の「Unavailable version」:26.04 向けには Ruby の各系列の一部のパッチしか作られていないので、
.ruby-versionの 3.4.2 のような固定は Ruby のステップで止まります。 - 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. の商標、Python は Python Software Foundation の登録商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・Canonical・Python Software Foundation・PyCQA・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:「The ubuntu-latest label will migrate to Ubuntu 26」 · setup-python の「was not found」 · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English