Skip to main content

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

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

Примечание.

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 ]