Github actions:使用两种不同类型的自托管运行器

问题描述 投票:0回答:2

我有一个 github 存储库,它正在使用 github 操作执行 CI/CD,这需要的不仅仅是 github 托管的运行程序可以做的事情。 以多种方式。 对于某些任务,我们需要在 GPU 上测试 CUDA 代码。 对于其他一些任务,我们需要大量的 CPU 核心和本地磁盘。

是否可以根据任务将 github 操作路由到不同的自托管运行器? 有些任务交给 GPU 工作线程,其他任务交给大型 CPU 工作线程? docs暗示这可能使用“runner groups”来实现,但老实说我无法判断这是否是A)如果我弄清楚的话可以工作B)只有当我将我的付费github帐户升级到更贵的东西时才有效(即使它已经说它是“企业”)或 C)永远无法工作。

当我尝试按照文档设置运行程序组时,我看不到文档描述的 UI 元素。 那么也许我的帐户还不够贵?

但我也没有看到任何将任务路由到特定跑步者组的方法。 今天要使用自托管运行器,我只是说

  gpu-test-job:
    runs-on: self-hosted

而不是

  standard-test-job:
    runs-on: ubuntu-22.04

而且我不确定如何指定哪个运行程序组(或其他路由机制)将其发送到特定类型的自托管运行程序(如果有的话)。 我需要指定类似的内容:

  big-cpu-job:
    runs-on: self-hosted
    self-hosted-runner-group: big-cpu   # is this even a thing?
github-actions github-actions-self-hosted-runners
2个回答
2
投票

您似乎无法在个人帐户上使用跑步者群组,但这不是问题!

标签可以添加到自托管运行器中。这些标签可以在

runs-on
值(作为数组)中引用,以指定作业应转到哪个自托管运行器。

您可以像这样运行

./config.sh
(您可以根据需要传入任意数量的逗号分隔标签):

./config.sh --labels big-cpu

并且您的工作将在

runs-on
字段中使用数组,以确保它选择也具有
big-cpu
标签的自托管运行器:

big-cpu-job:
    runs-on: [self-hosted, big-cpu]
    ...

注意:如果您想为需要它的作业“保留”

big-cpu
跑步者,那么您可以在其他跑步者的
regular
上使用单独的标签
./config.sh
,并将其用于
runs-on
适用于不需要专门跑步者的工作。


0
投票

如果您确实有权访问跑步者组(我相信这需要 Enterprise),您可以使用此语法来定位

self-hosted
big-cpu
(假设
big-cpu
是其中包含跑步者的跑步者组的名称):

jobs:
  big-cpu-job:
    runs-on:
      group: big-cpu
      runs-on: self-hosted
    step:
      ...

今天经过测试,这对我有用。我正在使用最新版本的 GitHub ARC,并且在 GitHub Enterprise Cloud 上。

© www.soinside.com 2019 - 2024. All rights reserved.