Примечание.
GitHub Enterprise Serverразмещенные в данный момент средства выполнения не поддерживаются в GitHub.
Обзор
Используйте jobs.<job_id>.runs-on для определения типа компьютера, на котором будет запускаться задание.
-
Конечный компьютер может быть локальным runner.
-
Вы можете нацеливать бегуна на основе меток, назначенных им, или их членства в группах или сочетания этих.
-
Вы можете предоставить следующие возможности
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 Enterprise Serverразмещенные в данный момент средства выполнения не поддерживаются в 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 с метками.
Пример. Использование групп для управления выполнением заданий
В этом примере средства запуска 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 ]