跳至主要内容

在更大的 Runner 上运行作业

您可以通过将工作流配置为在更大的 Runner 上运行来加快工作流速度。

谁可以使用此功能?

更大的 Runner 仅适用于使用 GitHub Team 或 GitHub Enterprise Cloud 计划的组织和企业。

平台导航

在您的运行器上运行作业

定义运行器类型后,您可以更新工作流 YAML 文件,将作业发送到新创建的运行器实例进行处理。您可以使用运行器组或标签来定义作业运行的位置。

注意:大型运行器会自动分配一个与运行器名称相对应的默认标签。您无法向大型运行器添加自定义标签,但可以使用默认标签或运行器组将作业发送到特定类型的运行器。

只有所有者或管理员帐户才能看到运行器设置。非管理员用户可以联系组织所有者以了解哪些运行器已启用。您的组织所有者可以创建新的运行器和运行器组,以及配置权限以指定哪些仓库可以访问运行器组。有关更多信息,请参阅“管理大型运行器”。

定义运行器类型后,您可以更新工作流 YAML 文件,将作业发送到新创建的运行器实例进行处理。您可以使用运行器组或标签来定义作业运行的位置。

注意:大型运行器会自动分配一个与运行器名称相对应的默认标签。您无法向大型运行器添加自定义标签,但可以使用默认标签或运行器组将作业发送到特定类型的运行器。

只有所有者或管理员帐户才能看到运行器设置。非管理员用户可以联系组织所有者以了解哪些运行器已启用。您的组织所有者可以创建新的运行器和运行器组,以及配置权限以指定哪些仓库可以访问运行器组。有关更多信息,请参阅“管理大型运行器”。

定义运行器类型后,您可以更新工作流 YAML 文件,将作业发送到运行器实例进行处理。要在 macOS 大型运行器上运行作业,请更新工作流 YAML 文件中的 runs-on 键,以使用 GitHub 定义的 macOS 运行器标签之一。有关更多信息,请参阅“可用的 macOS 大型运行器”。

可用的 macOS 大型运行器

使用下表中的标签在相应的 macOS 大型运行器上运行您的工作流。

运行器大小架构处理器 (CPU)内存 (RAM)存储 (SSD)工作流标签
大型英特尔1230 GB14 GBmacos-latest-large, macos-12-large, macos-13-large [最新], macos-14-large[Beta]
超大arm64 (M1)6 (+ 8 GPU 硬件加速)14 GB14 GBmacos-latest-xlarge, macos-13-xlarge [最新], macos-14-xlarge[Beta]

注意:对于 macOS 大型运行器,-latest 运行器标签使用 macOS 12 运行器镜像。对于 macOS 超大,-latest 运行器标签使用 macOS 13 运行器镜像

查看仓库可用的运行器

如果您对仓库有 repo: write 权限,则可以查看仓库可用的运行器列表。

  1. 在 GitHub.com 上,导航到仓库的主页。

  2. 在您的仓库名称下,单击 操作.

    Screenshot of the tabs for the "github/docs" repository. The "Actions" tab is highlighted with an orange outline.

  3. 在左侧边栏的“管理”部分下,单击 运行器.

  4. 查看仓库可用的运行器列表。

  5. 可选地,要复制运行器的标签以在工作流程中使用,请单击 运行器右侧,然后单击复制标签

注意:企业和组织所有者可以从此页面创建运行器。要创建新的运行器,请单击运行器列表右上角的新建运行器,将运行器添加到仓库。

有关更多信息,请参阅“管理大型运行器”和“添加自托管运行器”。

使用组控制作业运行位置

在本例中,Ubuntu 运行器已添加到名为 ubuntu-runners 的组中。runs-on 键将作业发送到 ubuntu-runners 组中任何可用的运行器

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on: 
      group: ubuntu-runners
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

使用组控制作业运行位置

在本例中,Ubuntu 运行器已添加到名为 ubuntu-runners 的组中。runs-on 键将作业发送到 ubuntu-runners 组中任何可用的运行器

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on: 
      group: ubuntu-runners
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

使用标签控制作业运行位置

您可以通过使用语法 runs-on: LABEL 将标签隐式传递给 runs-on 键。或者,您可以使用 labels 键,如下面的示例所示。

在本例中,runs-on 键将作业发送到已分配 ubuntu-20.04-16core 标签的任何可用运行器

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      labels: ubuntu-20.04-16core
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

任何对启用操作的仓库具有写入权限的人都可以找出仓库中可用的运行器的标签。请参阅“在大型运行器上运行作业”。

使用标签控制作业运行位置

您可以通过使用语法 runs-on: LABEL 将标签隐式传递给 runs-on 键。或者,您可以使用 labels 键,如下面的示例所示。

在本例中,runs-on 键将作业发送到任何已分配 windows-2022-16core 标签的可用运行器。

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      labels: windows-2022-16core
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

任何对启用操作的仓库具有写入权限的人都可以找出仓库中可用的运行器的标签。请参阅“在大型运行器上运行作业”。

在工作流中定位 macOS 大型运行器

要在 macOS 大型运行器上运行工作流,请将 runs-on 键的值设置为与 macOS 大型运行器关联的标签。有关 macOS 大型运行器标签列表,请参阅“可用的 macOS 大型运行器”。

在本例中,工作流使用与 macOS XL 运行器关联的标签。runs-on 键将作业发送到任何具有匹配标签的可用运行器。

name: learn-github-actions-testing
on: [push]
jobs:
  build:
    runs-on: macos-13-xlarge
    steps:
      - uses: actions/checkout@v4
      - name: Build
        run: swift build
      - name: Run tests
        run: swift test

使用标签和组来控制作业的运行位置

当您组合组和标签时,运行器必须同时满足这两个要求才能有资格运行作业。

在本例中,名为 ubuntu-runners 的运行器组包含 Ubuntu 运行器,这些运行器也已分配了 ubuntu-20.04-16core 标签。runs-on 键组合了 grouplabels,以便作业被路由到组中任何具有匹配标签的可用运行器。

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      group: ubuntu-runners
      labels: ubuntu-20.04-16core
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

使用标签和组来控制作业的运行位置

当您组合组和标签时,运行器必须同时满足这两个要求才能有资格运行作业。

在本例中,名为 ubuntu-runners 的运行器组包含 Ubuntu 运行器,这些运行器也已分配了 ubuntu-20.04-16core 标签。runs-on 键组合了 grouplabels,以便作业被路由到组中任何具有匹配标签的可用运行器。

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      group: ubuntu-runners
      labels: ubuntu-20.04-16core
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

对大型运行器进行故障排除

如果您发现目标为大型运行器的作业延迟或未运行,则可能有多种因素导致这种情况。

  • 并发设置:您可能已达到最大并发限制。如果您想启用更多作业并行运行,可以将自动缩放设置更新为更大的数字。有关更多信息,请参阅“管理大型运行器”。
  • 存储库权限:确保您为大型运行器启用了适当的存储库权限。默认情况下,企业运行器在存储库级别不可用,必须由组织管理员手动启用。有关更多信息,请参阅“管理大型运行器”。
  • 计费信息:您必须在帐户中添加有效的信用卡才能使用大型运行器。在您的帐户中添加信用卡后,可能需要长达 10 分钟才能启用大型运行器的使用。有关更多信息,请参阅“添加或编辑付款方式”。
  • 支出限额:您的 GitHub Actions 支出限额必须设置为大于零的值。有关更多信息,请参阅“管理您的 GitHub Actions 支出限额”。
  • 合理使用政策:GitHub 有一项合理使用政策,该政策会根据多个因素(例如您运行的作业数量或整个 GitHub Actions 中运行的作业数量)开始限制作业。

如果您发现目标为大型运行器的作业延迟或未运行,则可能有多种因素导致这种情况。

  • 并发设置:您可能已达到最大并发限制。如果您想启用更多作业并行运行,可以将自动缩放设置更新为更大的数字。有关更多信息,请参阅“管理大型运行器”。
  • 存储库权限:确保您为大型运行器启用了适当的存储库权限。默认情况下,企业运行器在存储库级别不可用,必须由组织管理员手动启用。有关更多信息,请参阅“管理大型运行器”。
  • 计费信息:您必须在帐户中添加有效的信用卡才能使用大型运行器。在您的帐户中添加信用卡后,可能需要长达 10 分钟才能启用大型运行器的使用。有关更多信息,请参阅“添加或编辑付款方式”。
  • 支出限额:您的 GitHub Actions 支出限额必须设置为大于零的值。有关更多信息,请参阅“管理您的 GitHub Actions 支出限额”。
  • 合理使用政策:GitHub 有一项合理使用政策,该政策会根据多个因素(例如您运行的作业数量或整个 GitHub Actions 中运行的作业数量)开始限制作业。

由于 macOS arm64 不支持 Node 12,因此 macOS 大型运行器会自动使用 Node 16 来执行为 Node 12 编写的任何 JavaScript 操作。某些社区操作可能与 Node 16 不兼容。如果您使用需要不同 Node 版本的操作,您可能需要在运行时手动安装特定版本。

注意: ARM 驱动的运行器目前处于测试阶段,可能会发生变化。