Skip to main content

此版本的 GitHub Enterprise 已停止服务 2022-10-12. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

在工作流中使用自托管运行程序

要在工作流程中使用自托管的运行器,您可以使用� �签为作业指定运行器类型。

注意:GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。

有关创建自定义和默认� �签的信息,请参阅“将� �签与自托管运行器一起使用”。

在工作流中使用自托管运行程序

� �签允许您� �据其共同特征向特定类型的自托管运行器发送工作流程作业。 例如,如果您的作业需要特定的硬件组件或软件包。 您可以将一个自定义� �签分配给运行器,然后将您的作业配置为仅在带该� �签的运行器中执行。

要为作业指定自托管运行器,请在工作流文件中使用自托管运行器� �签配置 runs-on

所有自托管运行器都有 self-hosted � �签。 仅使用此� �签将选择任何自托管运行器。 选择符合特定条件的运行器,例如操作系统或体系结构,建议提供以 self-hosted 开头的� �签数组(必须首先列出),然后� �据需要包含其他� �签。 指定� �签数组时,作业将在具有� 指定的所有� �签的运行器上排队。

尽管 self-hosted � �签不是必需的,但强烈建议在使用自托管运行器时指定它,以确保作业不会� 意中指定任何当前或将来的 GitHub 托管运行器。

有关详细信息,请参阅“GitHub Actions 的工作流语法”。

使用默认� �签路由作业

在被添� 到 GitHub Actions 后,自托管运行器将自动收到某些� �签。 这些被用于指出其操作系统和硬件平台:

  • self-hosted:应用于所有自托管运行器的默认� �签
  • linuxwindowsmacOS:� �据操作系统应用。
  • x64ARMARM64:� �据硬件体系结构应用。

您可以使用您工作流程的 YAML 将作业发送到这些� �签的组合。 在此示例中,与所有三个� �签匹配的自托管运行器将有资� �运行该作业:

runs-on: [self-hosted, linux, ARM64]
  • self-hosted - 在自托管运行器上运行此作业。
  • linux - 仅使用基于 Linux 的运行器。
  • ARM64 - 仅使用基于 ARM64 硬件的运行器。

默认� �签是固定的,� 法更改或� 除。 如果您需要对作业路由的更多控制,考虑使用自定义� �签。

使用自定义� �签路由作业

您可以随时创建自定义� �签并将其分配给您的自托管运行器。 自定义� �签允许您� �据其� �注将作业发送给特定的自托管运行器类型。

例如,如果某个作业需要特定类型的图形硬件,则可以创建名为 gpu 的自定义� �签,并将其分配给安装了该硬件的运行器。 然后,与所有已分配的� �签匹配的自托管运行器将有资� �运行该作业。

此示例显示组合默认� �签和自定义� �签的作业:

runs-on: [self-hosted, linux, x64, gpu]
  • self-hosted - 在自托管运行器上运行此作业。
  • linux - 仅使用基于 Linux 的运行器。
  • x64 - 仅使用基于 x64 硬件的运行器。
  • gpu - 此自定义� �签已被手动分配给安装了 GPU 硬件的自托管运行器。

这些� �签累计运行,所以自托管运行器必须拥有所有四个� �签才能处理该作业。

自托管运行器的路由优先级

将作业路由到自托管运行器时,GitHub 将查找与作业的 runs-on � �签匹配的运行器:

  1. GitHub 先在仓库级别搜索运行器,然后在组织级别搜索运行器,然后在企业级别搜索运行器。
  2. 然后,将作业发送到第一个联机且空闲的匹配运行器。
    • 如果所有匹配的联机运行器都处于忙碌状态,则作业将在匹配联机运行器数量最多的级别排队。
    • 如果所有匹配的运行器都处于脱机状态,则作业将在匹配脱机运行器数量最多的级别排队。
    • 如果在任何级别都没有匹配的运行器,则作业将失败。
    • 如果作业排队的时间超过 24 小时,则作业将失败。