我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们
Enterprise Server 3.0# 版本名称是通过 includes/header-notification.html 在以下文本之前呈现:目前可用作发行版候选。更多信息请参阅“关于升级到新版本”。

GitHub 托管的运行器的规格

GitHub 提供托管的虚拟机来运行工作流程。 虚拟机包含可供 GitHub Actions 使用的工具、包和设置。

GitHub Actions 可用于 GitHub Free、GitHub Pro、组织的 GitHub Free、GitHub Team、GitHub Enterprise Cloud 和 GitHub One。 GitHub Actions 不适用于使用旧版按仓库计划的帐户所拥有的私有仓库。

本文内容

注: GitHub 托管的运行器目前在 GitHub Enterprise Server 上不受支持。 您可以在 GitHub 公共路线图 上查看有关未来支持计划的更多信息。

关于 GitHub 托管的运行器

GitHub 托管的运行器是由安装了 GitHub Actions 运行器应用程序的 GitHub 托管的虚拟机。 GitHub 提供使用 Linux、Windows 和 macOS 操作系统的运行器。

使用 GitHub 托管的运行器时,设备维护和升级由您负责。 您可以直接在虚拟机上或 Docker 容器中运行工作流程。

可以为工作流程中的每项作业指定运行器类型。 工作流程中的每项作业都在全新的虚拟机实例中执行。 作业中的所有步骤在同一虚拟机实例中执行,让该作业中的操作使用文件系统共享信息。

GitHub Actions 运行器应用程序是开源的。 您可以参与 runner 仓库并在其中提交议题。

GitHub 托管的运行器的云主机

GitHub 在 Microsoft Azure 中安装了 GitHub Actions 运行器应用程序的 Standard_DS2_v2 虚拟机上托管 Linux 和 Windows 运行器。 GitHub 托管的运行器应用程序是 Azure Pipelines Agent 的复刻。 入站 ICMP 数据包被阻止用于所有 Azure 虚拟机,因此 ping 或 traceroute 命令可能无效。 有关 Standard_DS2_v2 机器资源的更多信息,请参阅 Microsoft Azure 文档中的“Dv2 和 DSv2 系列”。

GitHub 在 GitHub 自己的 macOS Cloud 中托管 macOS 运行器。

GitHub 托管的运行器的管理权限

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

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

支持的运行器和硬件资源

Hardware specification for Windows and Linux virtual machines:

  • 2 核 CPU
  • 7 GB RAM 内存
  • 14 GB SSD 硬盘空间

Hardware specification for macOS virtual machines:

  • 3 核 CPU
  • 14 GB RAM 内存
  • 14 GB SSD 硬盘空间
虚拟环境YAML 工作流程标签
Windows Server 2019windows-latestwindows-2019
Ubuntu 20.04ubuntu-latest (see note) or ubuntu-20.04
Ubuntu 18.04ubuntu-latest (see note) or ubuntu-18.04
Ubuntu 16.04ubuntu-16.04
macOS Big Sur 11.0macos-11.0
macOS Catalina 10.15macos-latestmacos-10.15

Note: The ubuntu-latest label is currently being migrated from the Ubuntu 18.04 virtual environment to Ubuntu 20.04. Specifying the ubuntu-latest label during the migration might use either virtual environment. To explicitly use Ubuntu 20.04 or Ubuntu 18.04, specify ubuntu-20.04 or ubuntu-18.04. When the migration is complete, ubuntu-latest will use the Ubuntu 20.04 virtual environment. For more information about the migration, see "Ubuntu-latest workflows will use Ubuntu-20.04."

注:MacOS 11.0 虚拟环境目前仅作为私人预览提供。 任何已经在使用此运行器的用户或组织都可以继续使用它。 但我们目前不接受任何其他用户或组织。 macos-latest YAML 工作流程标签仍使用 MacOS 10.15 虚拟环境。

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

支持的软件

GitHub 托管的运行器中包含的软件工具每周更新。 有关每个运行器操作系统包含的工具最新列表,请参阅以下链接:

Note: The ubuntu-latest label is currently being migrated from the Ubuntu 18.04 virtual environment to Ubuntu 20.04. Specifying the ubuntu-latest label during the migration might use either virtual environment. To explicitly use Ubuntu 20.04 or Ubuntu 18.04, specify ubuntu-20.04 or ubuntu-18.04. When the migration is complete, ubuntu-latest will use the Ubuntu 20.04 virtual environment. For more information about the migration, see "Ubuntu-latest workflows will use Ubuntu-20.04."

注:MacOS 11.0 虚拟环境目前仅作为私人预览提供。 任何已经在使用此运行器的用户或组织都可以继续使用它。 但我们目前不接受任何其他用户或组织。 macos-latest YAML 工作流程标签仍使用 MacOS 10.15 虚拟环境。

GitHub 托管的运行器除了上述参考中列出的包之外,还包括操作系统的默认内置工具。 例如,Ubuntu 和 macOS 运行器除了其他默认工具之外,还包括 grepfindwhich

Workflow logs include a link to the preinstalled tools on the exact runner. To find this information in the workflow log, expand the Set up job section. Under that section, expand the Virtual Environment section. The link following Included Software will tell you the the preinstalled tools on the runner that ran the workflow. Installed software link For more information, see "Viewing workflow run history."

We recommend using actions to interact with the software installed on runners. This approach has several benefits:

  • Usually, actions provide more flexible functionality like versions selection, ability to pass arguments, and parameters
  • It ensures the tool versions used in your workflow will remain the same regardless of software updates

如果有您想要请求的工具,请在 actions/virtual-environments 打开一个议题。 This repository also contains announcements about all major software updates on runners.

IP 地址

注意:如果使用 GitHub 组织或企业帐户的 IP 地址允许列表,则无法使用 GitHub 托管的运行器,而必须使用自托管的运行器。 更多信息请参阅“关于自托管运行器”。

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

要获取 GitHub Actions 用于 GitHub 托管运行器的 IP 地址范围列表,您可以使用 GitHub REST API。 更多信息请参阅“获取 GitHub 元信息”端点响应中的 actions 键。 如果需要一个允许列表来阻止未经授权访问您的内部资源,您可以使用此 IP 地址列表。

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

文件系统

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

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

有关 GitHub 为每个操作创建的环境变量列表,请参阅“使用环境变量”。

Docker 容器文件系统

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

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

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

此文档对您有帮助吗?

Privacy policy

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。