在您的运行器上运行作业
定义运行器类型后,您可以更新工作流 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 驱动的运行器目前处于测试阶段,可能会发生变化。