关于 AE 托管的运行器

GitHub AE 提供可定制和安全强化的托管虚拟机,以运行 GitHub Actions 工作流程。 您可以选择硬件,自带机器映像,并启用 IP 地址以与您的 AE 托管的运行器 联网。

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

注意: GitHub Actions 目前正在测试用于 GitHub AE 。

关于 AE 托管的运行器

AE 托管的运行器 是由安装了 GitHub 运行器服务的 GitHub Actions 托管的虚拟机。

GitHub AE 允许您使用 Ubuntu 或 Windows 映像创建和自定义 AE 托管的运行器;您可以选择您想要的机器大小并为其配置安全增强的网络。 AE 托管的运行器 由 GitHub 全面管理和自动扩展。

每个工作流程作业都是在 AE 托管的运行器 的新实例中执行,您可以直接在虚拟机上或 Docker 容器中运行工作流程。 作业中的所有步骤都在同一实例中执行,允许该作业中的操作使用 AE 托管的运行器 的文件系统共享信息。

AE 托管的运行器 是唯一可用于 GitHub AE 的运行器,而自托管的运行器则不可用。

要将 AE 托管的运行器 添加到您的组织或企业,请参阅“添加 AE 托管的运行器”。

AE 托管的运行器 的资源池分配

您的 AE 托管的运行器 被分配到与您的 GitHub AE 实例相同的资源池。 没有其他客户可以访问此资源池,因此 AE 托管的运行器s 不与任何其他客户共享。

管理 AE 托管的运行器

在 AE 托管的运行器 测试期间,您可以联系 GitHub 支持来管理您的 AE 托管的运行器。 例如,GitHub 支持可以帮助您新增 AE 托管的运行器、分配标签,或者将 AE 托管的运行器 移动到另一个组。

计费

GitHub Actions 目前正在测试用于 GitHub AE 。 在此测试阶段,AE 托管的运行器 不会计费,可以免费使用。

测试结束后,计费使用将包括您的 AE 托管运行器集中活动实例的全时运行时间。 这包括:

  • 作业时间 - 运行 Actions 作业所用的分钟数。
  • 管理 - 重新映像机器所用的分钟数,以及因所需的自动扩展行为而产生的任何空闲时间。

定价将与核心线性扩展。 例如,4 核价格将是 2 核的两倍。 Windows 虚拟机的定价将高于 Linux 虚拟机。

硬件规格

AE 托管的运行器 可用于 Microsoft Azure 中托管的一系列虚拟机。 根据地区供应情况,您可以从 Standard_Das_v4Standard_DS_v2Standard_Fs_v2 系列中选择。 某些地区还包含基于 Standard_NCs_v3 的 GPU 运行器。

有关这些 Azure 机器资源的更多信息,请参阅 Microsoft Azure 文档中的“Azure 中虚拟机的大小”。

要确定哪个运行器执行了作业,您可以查看工作流程日志。 更多信息请参阅“查看工作流程运行历史记录”。

软件规格

您可以将 AE 托管的运行器 与标准操作系统映像一起使用,也可以添加您创建的映像。

默认操作系统映像

这些映像仅包括标准操作系统工具:

  • Ubuntu 18.04 LTS (Canonical)
  • Ubuntu 16.04 LTS (Canonical)
  • Windows Server 2019 (Microsoft)
  • Windows Server 2016 (Microsoft)

自定义操作系统映像

您可以在 Azure 中创建自己的操作系统映像,并将它们作为 AE 托管的运行器 添加到 GitHub AE 中。 更多信息请参阅“使用自定义映像添加 AE 托管的运行器”。

网络规范

您可以选择性为您的 AE 托管的运行器 启用固定静态公共 IP 地址。 如果启用,实例中的所有 AE 托管的运行器 将共享 2 到 4 个 IP 地址的范围,并将使用这些地址上的端口进行通信。

如果您不启用静态公共 IP 地址,则 AE 托管的运行器 随后将与 Azure 数据中心拥有相同的 IP 地址范围。 入站 ICMP 数据包被阻止,因此 pingtraceroute 命令无法按预期工作。

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

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

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

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

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

文件系统

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

此文档对您有帮助吗?隐私政策

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

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

做出贡献

或, 了解如何参与。