使用默认标签路由作业
在被添加到 GitHub Actions 后,自托管运行器将自动收到某些标签。 这些被用于指出其操作系统和硬件平台:
self-hosted
:应用于自托管运行器的默认标签linux
、windows
或macOS
:根据操作系统应用。x64
、ARM
或ARM64
:根据硬件体系结构应用。
您可以使用您工作流程的 YAML 将作业发送到这些标签的组合。 在此示例中,与所有三个标签匹配的自托管运行器将有资格运行该作业:
runs-on: [self-hosted, linux, ARM64]
self-hosted
- 在自托管运行器上运行此作业。linux
- 仅使用基于 Linux 的运行器。ARM64
- 仅使用基于 ARM64 硬件的运行器。
若要创建没有默认标签的单独自托管运行器,请在创建运行器时传递 --no-default-labels
标志。 Actions Runner Controller 不支持多个标签。
使用自定义标签路由作业
您可以随时创建自定义标签并将其分配给您的自托管运行器。 自定义标签允许您根据其标注将作业发送给特定的自托管运行器类型。
例如,如果某个作业需要特定类型的图形硬件,则可以创建名为 gpu
的自定义标签,并将其分配给安装了该硬件的运行器。 然后,与所有已分配的标签匹配的自托管运行器将有资格运行该作业。
此示例显示组合默认标签和自定义标签的作业:
runs-on: [self-hosted, linux, x64, gpu]
self-hosted
- 在自托管运行器上运行此作业。linux
- 仅使用基于 Linux 的运行器。x64
- 仅使用基于 x64 硬件的运行器。gpu
- 此自定义标签已被手动分配给安装了 GPU 硬件的自托管运行器。
这些标签累计运行,所以自托管运行器必须拥有所有四个标签才能处理该作业。
使用组来路由作业
在此示例中,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-runners
的运行器组使用 Ubuntu 运行器(分配了标签 ubuntu-20.04-16core
)进行填充。 runs-on
键将 group
和 labels
组合在一起,以便将作业路由到具有匹配标签的组内的任何可用运行器:
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