Обзор
Используйте jobs.<job_id>.runs-on для определения типа компьютера, на котором будет запускаться задание.
- Конечный компьютер может быть [либо GitHubразмещенный runner, крупное средство выполнения, либо локальный runner](#choosing-self-hosted-runners).
-
Вы можете нацеливать бегуна на основе меток, назначенных им, или их членства в группах или сочетания этих.
-
Вы можете предоставить следующие возможности
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 |
|
Стандартные GitHubразмещенные средства выполнения для internal and частные репозитории
Для частных репозиториев internal and задания, использующие метки рабочего процесса, показанные в таблице ниже, будут выполняться на виртуальных машинах с соответствующими спецификациями. Эти бегуны используют ваши GitHub счет бесплатной минуты, а затем взимается плата за минуту. См . раздел AUTOTITLE.
| виртуальная машина | Процессор (ЦП) | Память (ОЗУ) | Хранилище (SSD) | архитектура | Метка рабочего процесса |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 2 | 8 ГБ | 14 ГБ | x64 |
|
Примечание.
Модули запуска 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 ]