在您的运行器上运行作业
定义运行器类型后,您可以更新工作流 YAML 文件,将作业发送到新创建的运行器实例进行处理。您可以使用运行器组或标签来定义作业运行的位置。
注意:大型运行器会自动分配一个与运行器名称相对应的默认标签。您无法向大型运行器添加自定义标签,但可以使用默认标签或运行器组将作业发送到特定类型的运行器。
只有所有者或管理员帐户才能看到运行器设置。非管理员用户可以联系组织所有者以了解哪些运行器已启用。您的组织所有者可以创建新的运行器和运行器组,以及配置权限以指定哪些仓库可以访问运行器组。有关更多信息,请参阅“管理大型运行器”。
定义运行器类型后,您可以更新工作流 YAML 文件,将作业发送到新创建的运行器实例进行处理。您可以使用运行器组或标签来定义作业运行的位置。
注意:大型运行器会自动分配一个与运行器名称相对应的默认标签。您无法向大型运行器添加自定义标签,但可以使用默认标签或运行器组将作业发送到特定类型的运行器。
只有所有者或管理员帐户才能看到运行器设置。非管理员用户可以联系组织所有者以了解哪些运行器已启用。您的组织所有者可以创建新的运行器和运行器组,以及配置权限以指定哪些仓库可以访问运行器组。有关更多信息,请参阅“管理大型运行器”。
定义运行器类型后,您可以更新工作流 YAML 文件,将作业发送到运行器实例进行处理。要在 macOS 大型运行器上运行作业,请更新工作流 YAML 文件中的 runs-on
键,以使用 GitHub 定义的 macOS 运行器标签之一。有关更多信息,请参阅“可用的 macOS 大型运行器”。
可用的 macOS 大型运行器
使用下表中的标签在相应的 macOS 大型运行器上运行您的工作流。
运行器大小 | 架构 | 处理器 (CPU) | 内存 (RAM) | 存储 (SSD) | 工作流标签 |
---|---|---|---|---|---|
大型 | 英特尔 | 12 | 30 GB | 14 GB | macos-latest-large , macos-12-large , macos-13-large [最新], macos-14-large [Beta] |
超大 | arm64 (M1) | 6 (+ 8 GPU 硬件加速) | 14 GB | 14 GB | macos-latest-xlarge , macos-13-xlarge [最新], macos-14-xlarge [Beta] |
注意:对于 macOS 大型运行器,-latest
运行器标签使用 macOS 12 运行器镜像。对于 macOS 超大,-latest
运行器标签使用 macOS 13 运行器镜像
查看仓库可用的运行器
如果您对仓库有 repo: write
权限,则可以查看仓库可用的运行器列表。
-
在 GitHub.com 上,导航到仓库的主页。
-
在您的仓库名称下,单击 操作.
-
在左侧边栏的“管理”部分下,单击 运行器.
-
查看仓库可用的运行器列表。
-
可选地,要复制运行器的标签以在工作流程中使用,请单击 运行器右侧,然后单击复制标签。
使用组控制作业运行位置
在本例中,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
键组合了 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
使用标签和组来控制作业的运行位置
当您组合组和标签时,运行器必须同时满足这两个要求才能有资格运行作业。
在本例中,名为 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
对大型运行器进行故障排除
如果您发现目标为大型运行器的作业延迟或未运行,则可能有多种因素导致这种情况。
- 并发设置:您可能已达到最大并发限制。如果您想启用更多作业并行运行,可以将自动缩放设置更新为更大的数字。有关更多信息,请参阅“管理大型运行器”。
- 存储库权限:确保您为大型运行器启用了适当的存储库权限。默认情况下,企业运行器在存储库级别不可用,必须由组织管理员手动启用。有关更多信息,请参阅“管理大型运行器”。
- 计费信息:您必须在帐户中添加有效的信用卡才能使用大型运行器。在您的帐户中添加信用卡后,可能需要长达 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 驱动的运行器目前处于测试阶段,可能会发生变化。