Ubuntu 26.04 Runners Are GA — and ubuntu-latest Switches Between 19 October and 19 November
GitHub's Ubuntu 26.04 runner images (ubuntu-26.04 and ubuntu-26.04-arm) are generally available, and the ubuntu-latest label migrates from 24.04 to 26.04 in stages between 19 October and 19 November 2026. What can break, how to test ahead of time, and how to pin 24.04 if you're not ready.
GitHub announced on 17 September 2026 that Ubuntu 26.04 runner images are generally available, and that the ubuntu-latest label will move from Ubuntu 24.04 to 26.04 in stages between 19 October and 19 November 2026.
The labels
| Label | Image |
|---|---|
ubuntu-26.04 |
Ubuntu 26.04, x64 |
ubuntu-26.04-arm |
Ubuntu 26.04, arm64 |
ubuntu-24.04 |
Ubuntu 24.04 (pin this if you need more time) |
ubuntu-latest |
24.04 → 26.04 during the migration window |
What can break
Runner images ship hundreds of preinstalled tools. A new Ubuntu release updates many of them and removes some. Workflows that quietly depend on a specific preinstalled version are the ones at risk:
- Scripts calling a tool that's no longer preinstalled.
- Builds expecting a particular default version of Python, a compiler, a database client or a browser.
- Native modules compiled against older system libraries.
- Docker or networking behaviour differences.
Because the rollout is staged, a workflow can pass on one run and fail on the next during the window — confusing if you don't know the migration is happening.
What to do
- Test now. Add a job, or temporarily switch a branch, to
runs-on: ubuntu-26.04and run your full workflow. - Install what you depend on explicitly rather than relying on the image — use
setup-node,setup-pythonand similar actions with pinned versions, andapt-get installfor system packages. That also makes your CI reproducible. (GitHub Actions Caching) - Not ready? Pin
runs-on: ubuntu-24.04until you are. - Read the image changes in the actions/runner-images repository's announcement for the full list of updated and removed software.
Also on runners this month
- Node 20 was removed from runners on 23 September; JavaScript actions run on Node 24. (GitHub Actions Removed Node 20)
- The macOS 14 runner image is being retired, and an Xcode 27 image runs on macOS 27.
The takeaway
*-latest labels trade stability for convenience. For release and deploy workflows, pin the OS version and upgrade on purpose; let a scheduled job on -latest warn you about upcoming breakage. (Scheduled GitHub Actions)
Source: GitHub Changelog: Ubuntu 26 generally available and latest migration
EasySpawn builds and runs your app on its own server, so production doesn't change under you — and Claude Code can update your CI to pin and install exactly what it needs. See how it works or join the waitlist.
Related: GitHub Actions CI Basics · GitHub Actions: Deploy to a VPS · Why App Works Locally but Not in Production · What Is CI/CD?
Keep reading
GitHub Actions Removed Node 20: JavaScript Actions Now Run on Node 24
On 23 September 2026 GitHub removed Node 20 from Actions runners; JavaScript actions now run on Node 24 and the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION escape hatch is gone. Why old actions break, how to update your workflows and your own actions, and the platform limits (macOS 13.4 and earlier, ARM32).
Vercel Roundup: Sandbox Gets Private Networking, CDN Stops Caching Vary: Cookie
Vercel's late-September and early-October 2026 changes: Vercel Sandbox gained Secure Compute (static IP egress and AWS VPC peering) and memory observability, sandbox creation now returns a ready sandbox, Vercel CDN no longer caches responses with Vary: Cookie, Edge Requests were renamed CDN Requests, and skills.sh passed one million agent skills.