GitHub 托管的运行器概述
运行器是在 GitHub Actions 工作流中执行作业的计算机。 例如,运行器可以在本地克隆存储库,安装测试软件,然后运行评估代码的命令。
GitHub 提供可用于运行作业的运行器,你也可以托管自己的运行器。 每个 GitHub 托管的运行器都是一个新的虚拟机 (VM),由 GitHub 托管,并且预安装了运行器应用程序和其他工具,可用于 Ubuntu Linux、Windows 或 macOS 操作系统。 使用 GitHub 托管的运行器时,设备维护和升级由您负责。
你可以选择标准 GitHub 托管的运行器选项之一,或者,如果使用 GitHub Team 或 GitHub Enterprise Cloud 计划,则可以预配具有更多核心或者由 GPU 处理器提供支持的运行器。 这些计算机称为“大型运行器”。 有关详细信息,请参阅“大型运行器”。
使用 GitHub 托管的运行程序需要网络访问,上传和下载速度至少为 70 千位每秒。
运行器映像
GitHub 为标准托管运行器维护自己的 VM 映像集。 这包括 macOS、x64 Linux 和 Windows 映像。 映像列表及其包含的工具在 actions/runner-images
仓库中进行管理。 arm64 映像是合作伙伴映像,这些映像在 actions/partner-runner-images
仓库中进行管理。
GitHub 拥有的映像的预安装软件
GitHub 拥有的映像中包含的软件工具每周更新一次。 更新过程需要几天时间,整个部署结束后,main
分支上的预装软件列表将进行更新。
工作流程日志包括指向准确运行器上预安装的工具的链接。 要在工作流日志中查找此信息,请扩展 Set up job
部分。 在该部分下,展开 Runner Image
部分。 Included Software
后面的链接将说明运行器上运行该工作流的预安装工具。
有关详细信息,请参阅“查看工作流程运行历史记录”。
GitHub 托管的运行器除了上述参考中列出的包之外,还包括操作系统的默认内置工具。 例如,Ubuntu 和 macOS 运行器包括 grep
、find
和 which
以及其他默认工具。
还可以查看每个版本的 Windows 和 Ubuntu 运行器映像的软件物料清单 (SBOM)。 有关详细信息,请参阅“安全使用参考”。
我们建议使用操作来与运行器上安装的软件进行交互。 此方法具有以下几个优点:
- 通常,操作提供更灵活的功能,如版本选择、传递参数的能力和参数
- 它可确保工作流程中使用的工具版本无论软件更新如何,都将保持不变
如果想要请求工具,请在操作/运行器映像中提出问题。 此仓库还包含有关运行器上所有主要软件更新的公告。
注意
还可以在 GitHub 托管的运行器上安装其他软件。 请参阅“自定义 GitHub 托管的运行器”。
GitHub 托管的运行器使用的云主机
GitHub 在 Microsoft Azure 中安装了 GitHub Actions 运行器应用程序的 虚拟机上托管 Linux 和 Windows 运行器。 GitHub 托管的运行器应用程序是 Azure Pipelines Agent 的复刻。 入站 ICMP 数据包被阻止用于所有 Azure 虚拟机,因此 ping 或 traceroute 命令可能无效。 GitHub 在 Azure 数据中心托管 macOS 运行器。
工作流连续性
如果 GitHub Actions 服务暂时不可用,则在触发后 30 分钟内没有排队时,运行的工作流程运行将被丢弃。 例如,如果触发了一个工作流程,而 GitHub Actions 服务在 31 分钟或更长时间内不可用,则该工作流程将不会被处理。
此外,如果工作流程运行已成功排队,但未在 45 分钟内由 GitHub 托管的运行器处理,则会丢弃排队的工作流程运行。
etc/hosts
文件
GitHub 托管的运行器预配有 etc/hosts
文件,可阻止对各种加密货币挖掘池和恶意站点的网络访问。 MiningMadness.com 和 cpu-pool.com 等主机会重新路由到 localhost,因此它们不会带来重大安全风险。