ubuntu-latest moves to Ubuntu 26.04 on October 19 — 22 toolset differences that can break your CI
说明与用途
GitHub 将 ubuntu‑latest 从 Ubuntu 24.04 迁移到 26.04,导致 22 个工具集差异,可能破坏 CI。runner‑drift‑audit 脚本检测这些差异,帮助固定特定的 runner 镜像和工具版本。
问题
GitHub’s shift of the ubuntu-latest runner from Ubuntu 24.04 to 26.04 introduces 22 toolset changes that can silently break or alter CI workflows.
结果
Using runner-drift-audit and pinning runner labels and tool versions prevents CI failures caused by the 22 toolset changes introduced with Ubuntu 26.04.
工作流
- 1. Identify if workflow uses ubuntu-latest or a pinned runner label.
- 2. Run runner-drift-audit on the repository to detect floating labels, removed tools, default-version drift, and mutable action tags.
- 3. Review audit output: HIGH findings indicate critical issues (e.g., missing tools, version drift).
- 4. If HIGH findings exist, pin the runner label (e.g., ubuntu-24.04) and pin tool versions using setup actions (e.g., actions/setup-java, actions/setup-node).
- 5. Re-run audit to confirm no HIGH findings remain.
- 6. Commit changes and re-run CI to ensure stability.
证据
Between October 19 and November 19, 2026, GitHub moves the ubuntu-latest runner label from Ubuntu 24.04 to Ubuntu 26.04.
I diffed the official actions/runner-images toolsets (toolset-2404.json vs toolset-2604.json) on 2026-10-10 and found 22 differences.
The CMake row deserves attention: on 24.04 it was deliberately held at 3.31.6 to avoid CMake 4.0 compatibility issues. On 26.04 it tracks latest, so CMake 4 behaviour may apply to projects that never opted in.
I packaged the toolset diff as a small open-source scanner, runner-drift-audit (MIT, single-file Python, standard library only, no dependencies).
- 记录日期: 2026-10-10T00:40:52.638Z