runner-images README

The project's README from github.com/actions/runner-images. As one markdown file: README.md.

GitHub Actions Runner Images

Table of Contents

About

This repository contains the source code used to create the VM images for GitHub-hosted runners used for Actions, as well as for Microsoft-hosted agents used for Azure Pipelines. To build a VM machine from this repo's source, see the instructions.

Available Images

Image Architecture YAML Label Included Software
Ubuntu 26.04 preview
Endpoint Badge
x64 ubuntu-26.04 ubuntu-26.04
Ubuntu 26.04 Arm64 preview
Endpoint Badge
arm64 ubuntu-26.04-arm ubuntu-26.04-arm64
Ubuntu 24.04
Endpoint Badge
x64 ubuntu-latest or ubuntu-24.04 ubuntu-24.04
Ubuntu 24.04 Arm64
Endpoint Badge
arm64 ubuntu-24.04-arm ubuntu-24.04-arm64
Ubuntu 22.04
Endpoint Badge
x64 ubuntu-22.04 ubuntu-22.04
Ubuntu 22.04 Arm64
Endpoint Badge
arm64 ubuntu-22.04-arm ubuntu-22.04-arm64
Ubuntu Slim
Endpoint Badge
x64 ubuntu-slim ubuntu-slim
Xcode 27 preview
Endpoint Badge
arm64 xcode-27 or xcode-27-xlarge xcode-27
macOS 26
Endpoint Badge
x64 macos-latest-large, macos-26-intel, macos-26-large macOS-26
macOS 26 Arm64
Endpoint Badge
arm64 macos-latest, macos-26 or macos-26-xlarge macOS-26-arm64
macOS 15
Endpoint Badge
x64 macos-15-large, or macos-15-intel macOS-15
macOS 15 Arm64
Endpoint Badge
arm64 macos-15, or macos-15-xlarge macOS-15-arm64
macOS 14 deprecated
Endpoint Badge
x64 macos-14-large macOS-14
macOS 14 Arm64 deprecated
Endpoint Badge
arm64 macos-14 or macos-14-xlarge macOS-14-arm64
Windows Server 2025
Endpoint Badge
x64 windows-latest, windows-2025, or windows-2025-vs2026 windows-2025-vs2026
Windows Server 2022
Endpoint Badge
x64 windows-2022 windows-2022
Windows 11 Arm64
Endpoint Badge
arm64 windows-11-arm windows-11-arm64
Windows 11 Arm64 with Visual Studio 2026
Endpoint Badge
arm64 windows-11-vs2026-arm windows-11-vs2026-arm64

Label scheme

Announcements

See notable upcoming changes by viewing issues with the Announcement label.

Image Definitions

Beta

The purpose of a Beta is to collect feedback on an image before it is released to GA. The goal of a Beta is to identify and fix any potential issues that exist on that image. Images are updated on a weekly cadence. Any workflows that run on a beta image do not fall under the customer SLA in place for Actions. Customers choosing to use Beta images are encouraged to provide feedback in the runner-images repo by creating an issue. A Beta may take on different availability, i.e. public vs private.

GA

A GA (General Availability) image has been through a Beta period and is deemed ready for general use. Images are updated on a weekly cadence. In order to be moved to GA the image must meet the following criteria:

  1. Has been through a Beta period (public or private)
  2. Most major software we install on the image has a compatible version for the underlying OS and
  3. All major bugs reported during the Beta period have been addressed.

This image type falls under the customer SLA for actions. GA images are eventually deprecated according to our guidelines as we only support the latest 2 versions of an OS.

Latest Migration Process

GitHub Actions and Azure DevOps use the -latest YAML label (ex: ubuntu-latest, windows-latest, and macos-latest). These labels point towards the newest stable OS version available.

The -latest migration process is gradual and happens over 1-2 months in order to allow customers to adapt their workflows to the newest OS version. During this process, any workflow using the -latest label, may see changes in the OS version in their workflows or pipelines. To avoid unwanted migration, users can specify a specific OS version in the yaml file (ex: macos-14, windows-2022, ubuntu-22.04).

Image Releases

How to best follow along with changes

  1. Find the latest releases for this repository here.

  2. Subscribe to the releases coming out of this repository, instructions here.

  3. Upcoming changes: A pre-release is created when the deployment of an image has started. As soon as the deployment is finished, the pre-release is converted to a release. If you have subscribed to releases, you will get notified of pre-releases as well.

  4. For high impact changes, we will post these in advance to the GitHub Changelog on our blog and on X.

    • Ex: breaking changes, GA or deprecation of images

Cadence

Software and Image Support

Support Policy

Tool name Installation strategy
Docker images not more than 3 latest LTS OS\tool versions. New images or new versions of current images are added using the standard tool request process
Java all LTS versions
Node.js 3 latest LTS versions
Go 3 latest minor versions
Python
Ruby
5 most popular major.minor versions
PyPy 3 most popular major.minor versions
.NET Core 2 latest LTS versions and 1 latest version. For each feature version only latest patch is installed. Note for Ubuntu images see details.
GCC
GNU Fortran
Clang
GNU C++
3 latest major versions
Android NDK 1 latest non-LTS, 2 latest LTS versions
Xcode - only one major version of Xcode will be supported per macOS version
- all minor versions of the supported major version will be available
- beta and RC versions will be provided "as-is" in the latest available macOS image only no matter of beta/GA status of the image
- when a new patch version is released, the previous patch version will be replaced
Xcode Platforms - only three major.minor versions of platform tools and simulator runtimes will be available for installed Xcode, including beta/RC versions

Package managers usage

We use third-party package managers to install software during the image generation process. The table below lists the package managers and the software installed.

[!NOTE] Third-party repositories are re-evaluated every year to identify if they are still useful and secure.

Operating system Package manager Third-party repos and packages
Ubuntu APT docker
Eclipse-Temurin (Adoptium)
Erlang
Firefox
git-lfs
git
Google Cloud CLI
Heroku
HHvm
MongoDB
Mono
MS Edge
PostgreSQL
R
pipx ansible-core
yamllint
Windows Chocolatey No third-party repos installed
macOS Homebrew aws-cli v2
azure/bicep
mongodb/brew
pipx yamllint

Image Deprecation Policy

Preinstallation Policy

In general, these are the guidelines we follow when deciding what to pre-install on our images:

Default Version Update Policy

How to Interact with the Repo

FAQs

What images are available for GitHub Actions and Azure DevOps?

The availability of images for GitHub Actions and Azure DevOps is the same. However, deprecation policies may differ. See documentation for more details:

What image version is used in my build?

Usually, image deployment takes 2-3 days, and documentation in the main branch is only updated when deployment is finished. To find out which image version and what software versions are used in a specific build, see Set up job (GitHub Actions) or Initialize job (Azure DevOps) step log. actions-runner-image

Looking for other Linux distributions?

We do not plan to offer other Linux distributions. We recommend using Docker if you'd like to build using other distributions with the hosted runner images. Alternatively, you can leverage self-hosted runners and fully customize your VM image to your needs.

How do I contribute to the macOS source?

macOS source lives in this repository and is available for everyone. However, macOS image-generation CI doesn't support external contributions yet so we are not able to accept pull-requests for now.

We are in the process of preparing macOS CI to accept contributions. Until then, we appreciate your patience and ask you to continue to make tool requests by filing issues.

How does GitHub determine what tools are installed on the images?

For some tools, we always install the latest at the time of the deployment; for others, we pin the tool to specific version(s). For more details please see the Preinstallation Policy

How do I request that a new tool be pre-installed on the image? Please create an issue and get an approval from us to add this tool to the image before creating the pull request.
What branch should I use to build custom image? We strongly encourage customers to build their own images using the main branch. This repository contains multiple branches and releases that serve as document milestones to reflect what software is installed in the images at certain point of time. Current builds are not idempotent and if one tries to build a runner image using the specific tag it is not guaranteed that the build will succeed.

runner-images (actions/runner-images)

Searching Database…

这是什么?这是 GitHub 用来构建虚拟机镜像的源代码,这些镜像为 GitHub 托管的 Actions 运行器和 Microsoft 托管的 Azure Pipelines 代理提供支持——也就是 Ubuntu、macOS 和 Windows 机器,上面预装好了各种开发工具。
也就是说我什么都不用装——那我要怎么用上这些镜像呢?你只需要在工作流的 YAML 里引用一个标签,比如 runs-on: ubuntu-latest 或 windows-2025,GitHub 就会把任务调度到对应的预构建虚拟机上。这个仓库是定义和构建这些镜像的地方,不是一个需要安装的软件包。
有哪些镜像可以选择?Ubuntu 22.04、24.04、26.04 以及一个 Slim 变体(x64 和 Arm64),macOS 14、15 和 26,包含 Xcode 27(x64 和 arm64),还有 Windows Server 2022/2025 和 Windows 11 Arm64,部分镜像带有 Visual Studio 2026。
这些机器上预装了哪些东西?很多:所有 Java LTS 版本、最新的 3 个 Node.js LTS 版本和 Go 小版本、5 个常用的 Python 和 Ruby 版本、当前的 .NET、GCC 和 Clang、Docker,以及每个 macOS 镜像上一个受支持的 Xcode 大版本。
能用 Fedora、Arch 或 Debian 的运行器吗?不行——GitHub 只提供 Ubuntu 镜像,也没有支持其他发行版的计划。README 建议在托管的运行器上用 Docker 容器来跑构建,或者使用带有完全自定义镜像的自托管运行器。
Azure Pipelines 的用户也能用吗,还是只有 GitHub Actions?都可以——同一批镜像既服务 GitHub 托管的 Actions 运行器,也服务 Microsoft 托管的 Azure Pipelines 代理,不过这两个服务的弃用政策不一样。
ubuntu-latest 迁移到新的操作系统版本时,我的工作流会坏掉吗?-latest 标签会在 1 到 2 个月内逐步迁移到最新的正式版镜像,所以迁移过程中任务可能落到不同的操作系统上。如果想要稳定,可以在 YAML 里固定一个确切的版本,比如 ubuntu-24.04 或 windows-2022。
这些镜像多久更新一次?软件更新每周部署一次,每次部署都会通过这个仓库的 releases 来跟踪——先用一个 pre-release 标记开始,部署完成后转为正式 release。一次部署本身需要 2 到 3 天。
Beta 和 GA 镜像有什么区别?Beta 镜像用于在正式发布前收集反馈,每周更新,不包含 Actions 客户 SLA。GA 镜像通过了 beta 阶段并修复了重大 bug,受 SLA 保护;GitHub 对每个操作系统最多保留 2 个 GA 镜像和 1 个 beta 镜像。
我能用这个仓库构建自己的自定义运行器镜像吗?可以——请从 main 分支构建,因为带标签的构建不是幂等的,可能会失败。另外注意,macOS 镜像生成流程的 CI 目前还不接受外部贡献,所以对 macOS 的改动只能通过 tool-request 类型的 issue 提出。
Creator
actions
Size
16.2 MB
Stars
13.5K
Age
7y
Commits · 90 Days