Skip to main content

GitHub 托管的运行器参考

查找有关 GitHub 托管的运行器的信息,包括其规格和自定义选项。

支持的运行器和硬件资源

GitHub 托管的运行器的范围可用于公共和专用仓库。

有关可用运行器的列表,请参阅:

GitHub 托管的 Linux 运行器支持 Android SDK 工具的硬件加速,这使得运行 Android 测试的速度更快,而且消耗的分钟数更少。 有关 Android 硬件加速的详细信息,请参阅 Android 开发人员文档中的为 Android Emulator 配置硬件加速

注意

-latest 运行器映像是 GitHub 提供的最新稳定映像,但可能不是操作系统供应商提供的最新版本的操作系统。

警告

Beta 版映像和已弃用的映像“按原样”、“含全部错误”和“按可用性”提供,不包含在服务级别协议和保证之内。 客户支持可能不会涵盖 Beta 版映像。

用于公共存储库的 GitHub 托管的标准运行器

对于公共存储库,使用下表所示工作流标签的作业可在具有关联规范的虚拟机上运行。 可以在公共存储库上免费且无限制地使用这些运行器。

虚拟机 处理器 (CPU) 内存 (RAM) 存储 (SSD) 体系结构 工作流标签
Linux 4 16 GB 14 GB X64 ubuntu-latest, ubuntu-24.04, ubuntu-22.04
Windows 4 16 GB 14 GB X64 windows-latest, windows-2025, windows-2022
Linux [公共预览版] 4 16 GB 14 GB arm64 ubuntu-24.04-armubuntu-22.04-arm
Windows [公共预览版] 4 16 GB 14 GB arm64 windows-11-arm
macOS 4 14 GB 14 GB Intel macos-13
macOS 3 (M1) 7 GB 14 GB arm64 macos-latest, macos-14, macos-15

注意

arm64 Linux 和 Windows 运行程序处于 公共预览版 阶段,可能会有所更改。

适用于专用存储库的标准 GitHub 托管的运行器

对于专用存储库,使用下表所示工作流标签的工作可在具有关联规范的虚拟机上运行。 这些运行程序使用 GitHub 帐户分配的免费分钟数,然后按每分钟费率收费。 有关详细信息,请参阅“GitHub Actions billing”。

虚拟机 处理器 (CPU) 内存 (RAM) 存储 (SSD) 体系结构 工作流标签
Linux 2 7 GB 14 GB X64 ubuntu-latest, ubuntu-24.04, ubuntu-22.04
Windows 2 7 GB 14 GB X64 windows-latest, windows-2025, windows-2022
macOS 4 14 GB 14 GB Intel macos-13
macOS 3 (M1) 7 GB 14 GB arm64 macos-latest, macos-14, macos-15

工作流程日志列出用于运行作业的运行器。 有关详细信息,请参阅“查看工作流程运行历史记录”。

arm64 macOS 运行器的限制

  • GitHub 提供的所有操作均与 arm64 GitHub 托管运行器兼容。 但是,社区操作可能与 arm64 不兼容,需要在运行时手动安装。
  • 由于 Apple 虚拟化框架的限制,不支持嵌套虚拟化和金属性能着色器 (MPS)。
  • Azure 专用网络和分配静态 IP 等网络功能目前不适用于 macOS 大型运行器。
  • 没有为 arm64 macOS 运行程序分配静态 UUID/UDID,因为 Apple 不支持此功能。 但是,为 Intel MacOS 运行程序分配了静态 UDID,具体为 4203018E-580F-C1B5-9525-B745CECA79EB。 如果要在计划测试生成的同一 主机上进行生成和签名,则可以使用开发预配配置文件进行签名。 如果需要静态 UDID,可以使用 Intel 运行程序并将其 UDID 添加到 Apple 开发者帐户。

大型运行器

GitHub Team 和 GitHub Enterprise Cloud 计划的客户可以从一系列托管的虚拟机中选择,这些虚拟机比标准 GitHub 托管的运行器拥有更多资源。 这些计算机称为“大型运行器”。 具有以下高级功能:

  • 更多内存、CPU 和磁盘空间
  • 静态 IP 地址
  • Azure 专用网络
  • 分组运行器的能力
  • 自动缩放以支持并发工作流
  • GPU 支持的运行程序

这些 大型运行器 由 GitHub 托管,并预安装了运行器应用程序和其他工具。

有关详细信息,请参阅“使用较大运行器”。

管理权限

Linux 和 macOS 虚拟机都使用无密码的 sudo 运行。 在需要比当前用户更多的权限才能执行命令或安装工具时,你可以使用无需提供密码的 sudo。 有关详细信息,请参阅“Sudo 手册”。

Windows 虚拟机配置为以禁用了用户帐户控制 (UAC) 的管理员身份运行。 有关详细信息,请参阅 Windows 文档中的“用户帐户控制工作原理”。

IP 地址

要获取 GitHub Actions 用于 GitHub 托管运行器的 IP 地址范围列表,您可以使用 GitHub REST API。 有关详细信息,请参阅 GET /meta 终结点响应中的 actions 密钥。 有关详细信息,请参阅“元数据的 REST API 终结点”。

Windows 和 Ubuntu 运行程序托管在 Azure 中,随后具有与 Azure 数据中心相同的 IP 地址范围。 macOS 运行器托管在 GitHub 自己的 macOS 云中。

由于 GitHub 托管的运行器的 IP 地址范围太多,因此我们不建议你将这些范围用作内部资源的允许列表。 相反,建议将 大型运行器 用于静态 IP 地址范围或自托管运行器。 有关详细信息,请参阅“使用较大运行器”或“自托管运行程序”。

API 返回的 GitHub Actions IP 地址列表每周更新一次。

GitHub 托管的运行器的通信要求

GitHub 托管的运行器必须与 GitHub 拥有的终结点建立连接才能执行必要的通信操作。 此外,运行器可能需要访问在操作中指定或使用的其他网络。

为确保 GitHub 托管的运行器在配置中的不同网络之间进行正常通信,请确保允许以下通信。

注意

列出的一些域名使用 CNAME 记录配置。 一些防火墙可能要求你为所有 CNAME 记录递归添加规则。 请注意,CNAME 记录将来可能会改变,只有列出的域名将保持不变。

基本操作所需:

Shell
github.com
api.github.com
*.actions.githubusercontent.com

下载操作时需要:

Shell
codeload.github.com
pkg.actions.githubusercontent.com

发布不可变操作所需:

Shell
ghcr.io

上传/下载作业摘要、工作流项目和缓存时需要:

Shell
results-receiver.actions.githubusercontent.com
*.blob.core.windows.net

运行器版本更新需要:

Shell
objects.githubusercontent.com
objects-origin.githubusercontent.com
github-releases.githubusercontent.com
github-registry-files.githubusercontent.com

检索 OIDC 令牌时需要:

Shell
*.actions.githubusercontent.com

需要将包或容器下载或发布到 GitHub 包:

Shell
*.pkg.github.com
pkg-containers.githubusercontent.com
ghcr.io

Needed for Git Large File Storage 需要

Shell
github-cloud.githubusercontent.com
github-cloud.s3.amazonaws.com

Dependabot updates 的作业需要

Shell
dependabot-actions.githubapp.com

文件系统

GitHub 在虚拟机上的特定目录中执行操作和 shell 命令。 虚拟机上的文件路径不是静态的。 使用 GitHub 提供的环境变量为 homeworkspaceworkflow 目录构造文件路径。

目录环境变量说明
homeHOME包含用户相关的数据。 例如,此目录可能包含登录凭据。
workspaceGITHUB_WORKSPACE在此目录中执行操作和 shell 命令。 操作可以修改此目录的内容,后续操作可以访问这些修改。
workflow/event.jsonGITHUB_EVENT_PATH触发工作流的 Webhook 事件的有效负载 POST。 每当操作执行时,GitHub 都会重写此变量,以隔离操作之间的文件内容。

有关 GitHub 为每个工作流创建的环境变量列表,请参阅“在变量中存储信息”。

Docker 容器文件系统

在 Docker 容器中运行的操作在 /github 路径下有静态目录。 但强烈建议使用默认环境变量在 Docker 容器中构建文件路径。

GitHub 保留 /github 路径前缀,并为操作创建三个目录。

  • /github/home
  • /github/workspace - 注意: GitHub Actions 必须由默认 Docker 用户 (root) 运行。 确保 Dockerfile 没有设置 USER 指令,否则你将无法访问 GITHUB_WORKSPACE
  • /github/workflow