Skip to main content

在较大的运行器上运行作业

识别可用的 大型运行器,然后使用运行器组和工作流标签将作业路由到正确的运行器。

谁可以使用此功能?

大型运行器 目前仅对使用 GitHub Team 或 GitHub Enterprise Cloud 计划的组织和企业可用。

Platform navigation

标识存储库的可用运行程序

如果对存储库具有 repo: write 访问权限,则可以查看存储库可用的运行器列表。

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在仓库名称下,单击“ Actions”****。

    “github/docs”存储库的选项卡的屏幕截图。 “操作”选项卡以橙色边框突出显示。

  3. 在左边栏中的“Management”部分下,单击 “Runners”****。

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

  5. (可选)要复制运行器标签以在工作流中使用,请单击运行器右侧的 ,然后单击“复制标签”。****

注意

企业和组织所有者以及拥有“管理组织运行器和运行器组”权限的用户可以从此页面创建运行器。 若要创建新的运行器,请单击运行器列表右上角的“新建运行器”****,将运行器添加到存储库。

有关详细信息,请参阅 管理较大的运行器添加自托管的运行器。 有关自定义组织角色的详细信息,请参阅 自定义组织角色的权限

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

在确定要使用的 大型运行器 后,您可以在工作流中使用运行器组、工作流标签或两者来指定它们。 使用运行程序组将作业路由到一组运行程序、将工作流标签定向到具有特定标签的运行程序,或者在作业必须与这两个条件匹配时同时将作业路由到两者。

如果管理员禁用了标准的 GitHub 托管运行器,则只能使用运行器组。

按运行程序组设定目标

在工作流中引用运行器组名称。 如果您希望将作业分配给特定组中的任意可用运行器,请使用此项。

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

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

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

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

在此示例中,runs-on 键会将作业发送到 macos-build-runners 组中的任意可用运行器:

name: learn-github-actions
on: [push]
jobs:
  check-swift-version:
    runs-on:
      group: macos-build-runners
    steps:
      - uses: actions/checkout@v6
      - name: Build
        run: swift build
      - name: Run tests
        run: swift test

按工作流标签定位

如果要将作业路由到共享特定标签的运行程序,请在工作流中引用工作流标签。

大型运行器会被自动分配一个与运行器名称匹配的工作流标签。

在此示例中, runs-on 密钥将作业发送给已分配 ubuntu-24.04-16core 标签的任何可用运行器:

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

在此示例中, 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@v6
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

对于 macOS 大型运行器,你可以使用以下任一工作流标签:由 GitHub 定义的工作流标签,或在创建时根据你为 大型运行器 设置的名称自动分配的工作流标签。 有关可用 macOS 工作流标签的列表,请参阅 大型运行程序参考

在此示例中, runs-on 密钥将作业发送到已分配 macos-26-xlarge 标签的任何可用运行程序。

name: learn-github-actions
on: [push]
jobs:
  check-swift-version:
    runs-on: macos-26-xlarge
    steps:
      - uses: actions/checkout@v6
      - name: Build
        run: swift build
      - name: Run tests
        run: swift test

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

当作业必须仅在属于特定组且具有特定标签的运行器上运行时,请同时使用标签和组。 运行器必须同时满足这两项要求,才有资格运行该作业。

组合组和标签时,运行器必须满足这两项要求才能运行作业。

在此示例中,runs-on 键结合了 grouplabels,从而将该作业路由到组内任何具有匹配标签的可用运行器:

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

组合组和标签时,运行器必须满足这两项要求才能运行作业。

在此示例中,runs-on 键结合了 grouplabels,从而将该作业路由到组内任何具有匹配标签的可用运行器:

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

在此示例中,runs-on 键结合了 grouplabels,从而将该作业路由到组内任何具有匹配标签的可用运行器:

name: learn-github-actions
on: [push]
jobs:
  check-swift-version:
    runs-on:
      group: macos-runners
      labels: macos-26-xlarge
    steps:
      - uses: actions/checkout@v6
      - name: Build
        run: swift build
      - name: Run tests
        run: swift test

延伸阅读

有关密钥的 runs-on 语法详细信息,请参阅 GitHub Actions 的工作流语法

有关规范、标签、限制和故障排除信息,请参阅 大型运行程序参考