在运行器上运行作业
定义了运行器类型后,可以更新工作流 YAML 文件,以将作业发送到新创建的运行器实例进行处理。 可使用运行器组或标签来定义作业的运行位置。
注意: 系统会自动为 大型运行器 分配对应于运行器名称的默认标签。 无法将自定义标签添加到 大型运行器,但可以使用默认标签或运行器的组将作业发送到特定类型的运行器。
只有所有者或管理员帐户可查看运行器设置。 非管理用户可联系组织所有者,了解启用了哪些运行器。 组织所有者可创建新的运行器和运行器组,并配置权限来指定哪些存储库可访问运行器组。 有关详细信息,请参阅“管理较大的运行器”。
定义了运行器类型后,可以更新工作流 YAML 文件,以将作业发送到新创建的运行器实例进行处理。 可使用运行器组或标签来定义作业的运行位置。
注意: 系统会自动为 大型运行器 分配对应于运行器名称的默认标签。 无法将自定义标签添加到 大型运行器,但可以使用默认标签或运行器的组将作业发送到特定类型的运行器。
只有所有者或管理员帐户可查看运行器设置。 非管理用户可联系组织所有者,了解启用了哪些运行器。 组织所有者可创建新的运行器和运行器组,并配置权限来指定哪些存储库可访问运行器组。 有关详细信息,请参阅“管理较大的运行器”。
定义了运行器类型后,可以更新工作流 YAML 文件,以将作业发送到运行器实例进行处理。 若要在 macOS 大型运行器 上运行作业,请更新工作流 YAML 文件中的密钥 runs-on
,以将其中一个 GitHub 定义的标签用于 macOS 运行器。 有关详细信息,请参阅“可用的 macOS 大型运行器”。
可用的 macOS 大型运行器
使用下表中的标签在相应的 macOS 大型运行器 上运行工作流。
运行器大小 | 体系结构 | 处理器 (CPU) | 内存 (RAM) | 存储 (SSD) | OS(YAML 工作流标签) |
---|---|---|---|---|---|
大 | Intel | 12 | 30 GB | 14 GB | macos-latest-large 、macos-12-large 、macos-13-large [Beta] |
XLarge | arm64 (M1) | 6 CPU 和 8 GPU | 14 GB | 14 GB | macos-latest-xlarge [Beta]、macos-13-xlarge [Beta] |
注意: 对于 macOS 大型运行器,-latest
运行器标签使用 macOS 12 运行器映像。 对于 macOS Xlarge,-latest
运行器标签使用 macOS 13 运行器映像
查看存储库可用的运行器
注意:此功能目前为 beta 版本,可能会有变动。
如果对存储库具有 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@v3
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@v3
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
使用标签来控制作业的运行位置
在此示例中,使用 Ubuntu 16 核运行器填充运行器组,这些运行器也分配有标签 ubuntu-20.04-16core
。 runs-on
键将作业发送至具有匹配标签的任何可用运行器:
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@v3
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
使用标签来控制作业的运行位置
在此示例中,使用 Windows 16 核运行器填充运行器组,这些运行器也分配有标签 windows-2022-16core
。 runs-on
键将作业发送至具有匹配标签的任何可用运行器:
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@v3
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
以工作流中的 macOS 大型运行器 为目标
若要在 macOS 大型运行器 上运行工作流,请将 runs-on
密钥的值设置为与 macOS 大型运行器 关联的标签。 有关 macOS 大型运行器 标签的列表,请参阅“可用的 macOS 大型运行器”。
在此示例中,工作流使用与 macOS XL 运行器关联的标签,即 macos-latest-xl -arm64
。 runs-on
键将作业发送至具有匹配标签的任何可用运行器:
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
labels: macos-latest-xlarge -arm64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: '16'
- 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@v3
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@v3
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 版本的操作,则可能需要在运行时手动安装特定版本。