Обзор
Используйте jobs.<job_id>.runs-on для определения типа компьютера, на котором будет запускаться задание.
-
Машина назначения может быть либо GitHub-hosted runnerкрупное средство выполнения, либо самостоятельным.
-
Вы можете нацеливать бегуна на основе меток, назначенных им, или их членства в группах или сочетания этих.
-
Вы можете предоставить следующие возможности
runs-on:- Одна строка
- Одна переменная, содержащая строку
- Массив строк, переменных, содержащих строки, или сочетание обоих
key: valueПара с помощью клавиш илиgroupключейlabels
-
При указании массива строк или переменных рабочий процесс будет выполняться на любом средстве выполнения, который соответствует всем указанным
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как , но они необходимы для выражений вроде"$" .
Выбор средства выполнения тестов, размещенного на GitHub
Если вы используете GitHub-hosted runner, каждая задача запускается в новом экземпляре изображения раннера, заданного .runs-on
Ценность runs-on, когда вы используете GitHub-hosted runner, — это метка рабочего процесса или название группы бегущих. Метки для стандартных GitHub-hosted бегунов показаны в следующих таблицах.
Дополнительные сведения см. в разделе Средства выполнения тестов, размещенные в GitHub.
Стандартные GitHubразмещённые раннеры для публичных репозиториев
Для общедоступных репозиториев задания с метками рабочего процесса, показанными в таблице ниже, будут выполняться с соответствующими спецификациями. За исключением средств выполнения тестов с одним процессором, каждое средство выполнения GitHub-hosted является новой виртуальной машиной (VM), размещенной в GitHub. Single-CPU средства выполнения тестов размещаются в контейнере на общей виртуальной машине — см. раздел AUTOTITLE. Использование стандартных GitHub-hosted runners бесплатно и неограничено на публичных репозиториях.
| Виртуальная машина / контейнер | Процессор (ЦП) | Память (ОЗУ) | Хранилище (SSD) | архитектура | Метка рабочего процесса |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 4 | 16 ГБ | 14 ГБ | x64 |
|
Стандартные GitHub-hosted раннеры для внутренних и приватных репозиториев
Для внутренних и приватных репозиториев задания с метками рабочих процессов, показанных в таблице ниже, будут выполняться на виртуальных машинах с соответствующими спецификациями. Эти участники используют выделенные бесплатные минуты вашего 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 или локально размещенных в качестве участников.
Пример. Использование групп для управления выполнением заданий
В этом примере бегунки были добавлены в группу под названием build-runners. Ключ runs-on отправляет задание любому доступному build-runners средству выполнения в группе:
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: build-runners
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
Пример. Объединение групп и меток
При сочетании групп и меток средство выполнения должно соответствовать обоим требованиям, чтобы иметь право на выполнение задания.
В этом примере runs-on ключ объединяется group так labels , что задание направляется к любому доступному бегущему в группе, который также имеет совпадающую метку:
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 ]