Skip to main content

Выбор средства выполнения тестов для задания

Определите тип компьютера, который будет обрабатывать задание в рабочем процессе.

Обзор

Используйте jobs.<job_id>.runs-on для определения типа компьютера, на котором будет запускаться задание.

  • Вы можете нацеливать бегуна на основе меток, назначенных им, или их членства в группах или сочетания этих.

  • Вы можете предоставить следующие возможности runs-on :

    • Одна строка
    • Одна переменная, содержащая строку
    • Массив строк, переменных, содержащих строки, или сочетание обоих
    • key: value Пара с помощью клавиш или labels ключей group
  • При указании массива строк или переменных рабочий процесс будет выполняться на любом средстве выполнения, который соответствует всем указанным runs-on значениям. Например, здесь задание будет выполняться только на локальном runner с метками linuxиx64``gpu:

    runs-on: [self-hosted, linux, x64, gpu]
    

    Дополнительные сведения см. в разделе "Выбор локальных средств выполнения".

  • Строки и переменные можно смешивать в массиве. Например:

    on:
      workflow_dispatch:
        inputs:
          chosen-os:
            required: true
            type: choice
            options:
            - Ubuntu
            - macOS
    
    jobs:
      test:
        runs-on: [self-hosted, "${{ inputs.chosen-os }}"]
        steps:
        - run: echo Hello world!
    
  • Если необходимо запустить рабочий процесс на нескольких компьютерах, используйте jobs.<job_id>.strategy.

Примечание.

Кавычки не требуются для простых строк, таких self-hostedкак , но они необходимы для выражений, таких как "${{ inputs.chosen-os }}".

Выбор средства выполнения тестов, размещенного на GitHub

При использовании средства выполнения тестов, размещенного на GitHub, каждое задание выполняется в новом экземпляре образа средства выполнения тестов, заданной параметром runs-on.

Значение запуска при использовании GitHubразмещенного средства выполнения — это метка runner или имя группы runner. Метки для стандартных данных GitHubразмещенных в ней средств выполнения отображаются в следующих таблицах.

Дополнительные сведения см. в разделе Средства выполнения тестов, размещенные в GitHub.

Стандартные GitHubразмещенные средства выполнения для общедоступных репозиториев

Для общедоступных репозиториев задания с метками рабочего процесса, показанными в таблице ниже, будут выполняться с соответствующими спецификациями. За исключением средств выполнения тестов с одним процессором, каждое средство выполнения GitHub-hosted является новой виртуальной машиной (VM), размещенной в GitHub. Single-CPU средства выполнения тестов размещаются в контейнере на общей виртуальной машине — см. раздел AUTOTITLE. Использование стандартных средств запуска GitHub-hosted является бесплатным и неограниченным в общедоступных репозиториях.

Виртуальная машина / контейнер Процессор (ЦП) Память (ОЗУ) Хранилище (SSD) архитектура Метка рабочего процесса
Linux 1 5 GB 14 GB x64 ubuntu-slim
Linux 4 16 ГБ 14 ГБ x64
    <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md">ubuntu-latest</a></code>, , <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md">ubuntu-24.04</a></code><code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md">ubuntu-22.04</a></code></td>
</tr>
<tr>
  <td>Windows</td>
  <td>4</td>
  <td>16 ГБ</td>
  <td>14 ГБ</td>
  <td> x64 </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md">windows-latest</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md">windows-2025</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-VS2026-Readme.md">windows-2025-vs2026</a></code> (public preview), <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md">windows-2022</a></code></td>
</tr>
<tr>
  <td>Linux</td>
  <td>4</td>
  <td>16 ГБ</td>
  <td>14 ГБ</td>
  <td> arm64 </td>
  <td>
          
    <code><a href="https://github.com/actions/partner-runner-images/blob/main/images/arm-ubuntu-24-image.md">ubuntu-24.04-arm</a></code>, <code><a href="https://github.com/actions/partner-runner-images/blob/main/images/arm-ubuntu-22-image.md">ubuntu-22.04-arm</a></code></td>
</tr>
<tr>
  <td>Windows</td>
  <td>4</td>
  <td>16 ГБ</td>
  <td>14 ГБ</td>
  <td>arm64</td>
  <td>
    <code><a href="https://github.com/actions/partner-runner-images/blob/main/images/arm-windows-11-image.md">windows-11-arm</a></code>
  </td>
</tr>
<tr>
  <td>macOS</td>
  <td>4</td>
  <td>14 ГБ</td>
  <td>14 ГБ</td>
  <td> Intel </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md">macos-15-intel</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-26-Readme.md">macos-26-intel</a></code></td>
</tr>
<tr>
  <td>macOS</td>
  <td>3 (М1)</td>
  <td>7 ГБ</td>
  <td>14 ГБ</td>
  <td> arm64 </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md">macos-latest</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md">macos-14</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md">macos-15</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md">macos-26</a></code></td>
</tr>

Стандартные GitHubразмещенные средства выполнения для internal and частные репозитории

Для частных репозиториев internal and задания, использующие метки рабочего процесса, показанные в таблице ниже, будут выполняться на виртуальных машинах с соответствующими спецификациями. Эти бегуны используют ваши GitHub счет бесплатной минуты, а затем взимается плата за минуту. См . раздел AUTOTITLE.

виртуальная машина Процессор (ЦП) Память (ОЗУ) Хранилище (SSD) архитектура Метка рабочего процесса
Linux 1 5 GB 14 GB x64 ubuntu-slim
Linux 2 8 ГБ 14 ГБ x64
    <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md">ubuntu-latest</a></code>, , <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md">ubuntu-24.04</a></code><code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md">ubuntu-22.04</a></code></td>
</tr>
<tr>
  <td>Windows</td>
  <td>2</td>
  <td>8 ГБ</td>
  <td>14 ГБ</td>
  <td> x64 </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md">windows-latest</a></code>, , <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md">windows-2025</a></code><code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md">windows-2022</a></code></td>
</tr>
<tr>
  <td>Linux</td>
  <td>2</td>
  <td>8 ГБ</td>
  <td>14 ГБ</td>
  <td> arm64 </td>
  <td>
          
    <code><a href="https://github.com/actions/partner-runner-images/blob/main/images/arm-ubuntu-24-image.md">ubuntu-24.04-arm</a></code>, <code><a href="https://github.com/actions/partner-runner-images/blob/main/images/arm-ubuntu-22-image.md">ubuntu-22.04-arm</a></code></td>
</tr>
<tr>
  <td>Windows</td>
  <td>2</td>
  <td>8 ГБ</td>
  <td>14 ГБ</td>
  <td> arm64 </td>
  <td>
    <code><a href="https://github.com/actions/partner-runner-images/blob/main/images/arm-windows-11-image.md">windows-11-arm</a></code>
  </td>
</tr>
<tr>
  <td>macOS</td>
  <td>4</td>
  <td>14 ГБ</td>
  <td>14 ГБ</td>
  <td> Intel </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md">macos-15-intel</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-26-Readme.md">macos-26-intel</a></code></td>
</tr>
<tr>
  <td>macOS</td>
  <td>3 (М1)</td>
  <td>7 ГБ</td>
  <td>14 ГБ</td>
  <td> arm64 </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md">macos-latest</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md">macos-14</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md">macos-15</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md">macos-26</a></code></td>
</tr>

Примечание.

Модули запуска macOS недоступны в поддоменах GHE.com, например octocorp.ghe.com.

Помимо стандартных средств выполнения GitHub, размещенных в %}, GitHub предлагает клиентам GitHub Team и GitHub Enterprise Cloud планирует ряд управляемых виртуальных машин с расширенными функциями , например, больше ядер и дискового пространства, управляемых GPU, и компьютеров с поддержкой ARM. Дополнительные сведения см. в разделе Более крупные бегуны.

Примечание.

Образы -latest запуска — это последние стабильные образы, предоставляемые GitHub и не самые последние версии операционной системы, доступные поставщиком операционной системы.

Предупреждение

Образы бета-версии и устаревшие предоставляются как есть, "со всеми сбоями" и "как доступны" и исключены из соглашения об уровне обслуживания и гарантии. Для образов бета-версий может не оказываться поддержка.

Пример: указание операционной системы

runs-on: ubuntu-latest

Дополнительные сведения см. в разделе Средства выполнения тестов, размещенные в GitHub.

Выбор локальных средств выполнения тестов

Чтобы указать локальное средство выполнения тестов для задания, настройте runs-on в файле рабочего процесса, используя метки локального средства выполнения тестов.

У локальных модулей выполнения может быть self-hosted метка. При настройке локального runner по умолчанию мы будем включать метку self-hosted. Вы можете передать --no-default-labels флаг, чтобы предотвратить применение локальной метки. Метки можно использовать для создания параметров целевого назначения для средств выполнения, таких как операционная система или архитектура, мы рекомендуем предоставить массив меток, начинающихся с self-hosted (это должно быть указано сначала), а затем включить дополнительные метки по мере необходимости. При указании массива меток задания будут помещены в очередь в средства выполнения тестов, которые имеют все указанные метки.

Примечание.

Actions Runner Controller не поддерживает эту self-hosted метку.

Пример: использование меток для выбора средства выполнения тестов

runs-on: [self-hosted, linux]

Дополнительные сведения см. в разделе [AUTOTITLE и Локальные средства выполнения тестов](/actions/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow).

Выбор бегуна в группе

Вы можете использовать runs-on для целевых групп runner, чтобы задание выполнялось на любом средстве выполнения, являющегося членом этой группы. Для более детального управления можно также объединить группы runner с метками.

Группы runner могут иметь только крупное средство выполненияs или локально размещенных в качестве участников.

Пример. Использование групп для управления выполнением заданий

В этом примере средства запуска 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@v6
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

Пример. Объединение групп и меток

При сочетании групп и меток средство выполнения должно соответствовать обоим требованиям, чтобы иметь право на выполнение задания.

В этом примере вызываемая ubuntu-runners группа runner заполняется средствами запуска Ubuntu, которые также были назначены меткой ubuntu-24.04-16core. Ключ runs-on объединяется group и labels таким образом, чтобы задание перенаправлялось на любой доступный runner в группе, которая также имеет соответствующую метку:

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      group: ubuntu-runners
      labels: ubuntu-24.04-16core
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

Пример: использование префиксов для различения групп runner

Например, если у вас есть группа runner с именем my-group в организации и другая с именем my-group в организации, вы можете обновить файл рабочего процесса, чтобы использовать org/my-group или ent/my-group различать их.

Использование среды org/:

runs-on:
  group: org/my-group
  labels: [ self-hosted, label-1 ]

Использование среды ent/:

runs-on:
  group: ent/my-group
  labels: [ self-hosted, label-1 ]