{"meta":{"title":"Выбор средства выполнения тестов для задания","intro":"Определите тип компьютера, который будет обрабатывать задание в рабочем процессе.","product":"GitHub Actions","breadcrumbs":[{"href":"/ru/actions","title":"GitHub Actions"},{"href":"/ru/actions/how-tos","title":"Инструкции"},{"href":"/ru/actions/how-tos/write-workflows","title":"Написание рабочих процессов"},{"href":"/ru/actions/how-tos/write-workflows/choose-where-workflows-run","title":"Выбор места выполнения рабочих процессов"},{"href":"/ru/actions/how-tos/write-workflows/choose-where-workflows-run/choose-the-runner-for-a-job","title":"Выбор бегуна для задания"}],"documentType":"article"},"body":"# Выбор средства выполнения тестов для задания\n\nОпределите тип компьютера, который будет обрабатывать задание в рабочем процессе.\n\n## Обзор\n\nИспользуйте `jobs.<job_id>.runs-on` для определения типа компьютера, на котором будет запускаться задание.\n\n* Машина назначения может быть либо [GitHub-hosted runner](#choosing-github-hosted-runners)[крупное средство выполнения](#choosing-runners-in-a-group), либо [самостоятельным](#choosing-self-hosted-runners).\n\n* Вы можете нацеливать бегуна на основе меток, назначенных им, или их членства в группах или сочетания этих.\n\n* Вы можете предоставить следующие возможности `runs-on` :\n  * Одна строка\n  * Одна переменная, содержащая строку\n  * Массив строк, переменных, содержащих строки, или сочетание обоих\n  * `key: value` Пара с помощью клавиш или `group` ключей `labels`\n\n* При указании массива строк или переменных рабочий процесс будет выполняться на любом средстве выполнения, который соответствует всем указанным `runs-on` значениям. Например, здесь задание будет выполняться только на локальном runner с метками `linux`и`x64``gpu`:\n\n  ```yaml\n  runs-on: [self-hosted, linux, x64, gpu]\n  ```\n\n  Дополнительные сведения см. в разделе [\"Выбор локальных](#choosing-self-hosted-runners) средств выполнения\".\n\n* Строки и переменные можно смешивать в массиве. Например:\n\n  ```yaml\n  on:\n    workflow_dispatch:\n      inputs:\n        chosen-os:\n          required: true\n          type: choice\n          options:\n          - Ubuntu\n          - macOS\n\n  jobs:\n    test:\n      runs-on: [self-hosted, \"${{ inputs.chosen-os }}\"]\n      steps:\n      - run: echo Hello world!\n  ```\n\n* Если необходимо запустить рабочий процесс на нескольких компьютерах, используйте [`jobs.<job_id>.strategy`](/ru/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstrategy).\n\n> \\[!NOTE]\n> Кавычки не требуются вокруг простых строк, таких `self-hosted`как , но они необходимы для выражений вроде`\"${{ inputs.chosen-os }}\"` .\n\n## Выбор средства выполнения тестов, размещенного на GitHub\n\nЕсли вы используете GitHub-hosted runner, каждая задача запускается в новом экземпляре изображения раннера, заданного .`runs-on`\n\nЦенность runs-on, когда вы используете GitHub-hosted runner, — это метка рабочего процесса или название группы бегущих. Метки для стандартных GitHub-hosted бегунов показаны в следующих таблицах.\n\nДополнительные сведения см. в разделе [Средства выполнения тестов, размещенные в GitHub](/ru/actions/concepts/runners/github-hosted-runners).\n\n### Стандартные GitHubразмещённые раннеры для публичных репозиториев\n\nДля общедоступных репозиториев задания с метками рабочего процесса, показанными в таблице ниже, будут выполняться с соответствующими спецификациями.\nЗа исключением средств выполнения тестов с одним процессором, каждое средство выполнения GitHub-hosted является новой виртуальной машиной (VM), размещенной в GitHub. Single-CPU средства выполнения тестов размещаются в контейнере на общей виртуальной машине — см. [раздел AUTOTITLE](/ru/actions/reference/runners/github-hosted-runners#single-cpu-runners). Использование стандартных GitHub-hosted runners бесплатно и неограничено на публичных репозиториях.\n\n<table style=\"width:100%\">\n  <thead>\n    <tr>\n      <th scope=\"col\">\n<b>Виртуальная машина / контейнер</b></th>\n      <th scope=\"col\">\n<b>Процессор (ЦП)</b></th>\n      <th scope=\"col\">\n<b>Память (ОЗУ)</b></th>\n      <th scope=\"col\">\n<b>Хранилище (SSD)</b></th>\n      <th scope=\"col\">архитектура </th>\n      <th scope=\"col\">\n<b>Метка рабочего процесса</b></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n          <td>Linux</td>\n          <td>1</td>\n          <td>5 GB</td>\n          <td>14 GB</td>\n          <td> x64 </td>\n          <td>\n            <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu-slim/ubuntu-slim-Readme.md\">ubuntu-slim</a></code>\n          </td>\n        </tr>\n    <tr>\n      <td>Linux</td>\n      <td>4</td>\n      <td>16 ГБ</td>\n      <td>14 ГБ</td>\n      <td> x64 </td>\n      <td>\n\n```\n    <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>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2604-Readme.md\">ubuntu-26.04</a></code> , (Общедоступная предварительная версия) </td>\n</tr>\n<tr>\n  <td>Windows</td>\n  <td>4</td>\n  <td>16 ГБ</td>\n  <td>14 ГБ</td>\n  <td> x64 </td>\n  <td>\n          \n    <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><code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md\">windows-2022</a></code></td>\n</tr>\n<tr>\n  <td>Linux</td>\n  <td>4</td>\n  <td>16 ГБ</td>\n  <td>14 ГБ</td>\n  <td> arm64 </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Arm64-Readme.md\">ubuntu-24.04-arm</a></code>, , <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Arm64-Readme.md\">ubuntu-22.04-arm</a></code><code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2604-Arm64-Readme.md\">ubuntu-26.04-arm</a></code> (Общедоступная предварительная версия) </td>\n</tr>\n<tr>\n  <td>Windows</td>\n  <td>4</td>\n  <td>16 ГБ</td>\n  <td>14 ГБ</td>\n  <td>arm64</td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows11-Arm64-Readme.md\">windows-11-arm</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows11-VS2026-Arm64-Readme.md\">windows-11-vs2026-arm</a></code></td>\n</tr>\n<tr>\n  <td>macOS</td>\n  <td>4</td>\n  <td>14 ГБ</td>\n  <td>14 ГБ</td>\n  <td> Intel </td>\n  <td>\n          \n    <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>\n</tr>\n<tr>\n  <td>macOS</td>\n  <td>3 (М1)</td>\n  <td>7 ГБ</td>\n  <td>14 ГБ</td>\n  <td> arm64 </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-26-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><code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/xcode-27-arm64-Readme.md\">xcode-27</a></code> ()Общедоступная предварительная версия </td>\n</tr>\n```\n\n  </tbody>\n\n</table>\n\n### Стандартные GitHub-hosted раннеры для  приватных репозиториев\n\nДля  приватных репозиториев задания с метками рабочих процессов, показанных в таблице ниже, будут выполняться на виртуальных машинах с соответствующими спецификациями. Эти участники используют выделенные бесплатные минуты вашего GitHub аккаунта и затем взимают плату по ставке за минуту. См [. раздел AUTOTITLE](/ru/billing/reference/actions-runner-pricing).\n\n<table style=\"width:100%\">\n  <thead>\n    <tr>\n      <th scope=\"col\">\n<b>виртуальная машина</b></th>\n      <th scope=\"col\">\n<b>Процессор (ЦП)</b></th>\n      <th scope=\"col\">\n<b>Память (ОЗУ)</b></th>\n      <th scope=\"col\">\n<b>Хранилище (SSD)</b></th>\n      <th scope=\"col\">архитектура </th>\n      <th scope=\"col\">\n<b>Метка рабочего процесса</b></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n          <td>Linux</td>\n          <td>1</td>\n          <td>5 GB</td>\n          <td>14 GB</td>\n          <td> x64 </td>\n          <td>\n            <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu-slim/ubuntu-slim-Readme.md\">ubuntu-slim</a></code>\n          </td>\n        </tr>\n    <tr>\n      <td>Linux</td>\n      <td>2</td>\n      <td>8 ГБ</td>\n      <td>14 ГБ</td>\n      <td> x64 </td>\n      <td>\n\n```\n    <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>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2604-Readme.md\">ubuntu-26.04</a></code> , (Общедоступная предварительная версия) </td>\n</tr>\n<tr>\n  <td>Windows</td>\n  <td>2</td>\n  <td>8 ГБ</td>\n  <td>14 ГБ</td>\n  <td> x64 </td>\n  <td>\n          \n    <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>\n</tr>\n<tr>\n  <td>Linux</td>\n  <td>2</td>\n  <td>8 ГБ</td>\n  <td>14 ГБ</td>\n  <td> arm64 </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Arm64-Readme.md\">ubuntu-24.04-arm</a></code>, , <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Arm64-Readme.md\">ubuntu-22.04-arm</a></code><code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2604-Arm64-Readme.md\">ubuntu-26.04-arm</a></code> (Общедоступная предварительная версия) </td>\n</tr>\n<tr>\n  <td>Windows</td>\n  <td>2</td>\n  <td>8 ГБ</td>\n  <td>14 ГБ</td>\n  <td> arm64 </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows11-Arm64-Readme.md\">windows-11-arm</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows11-Arm64-VS2026-Readme.md\">windows-11-vs2026-arm</a></code></td>\n</tr>\n<tr>\n  <td>macOS</td>\n  <td>4</td>\n  <td>14 ГБ</td>\n  <td>14 ГБ</td>\n  <td> Intel </td>\n  <td>\n          \n    <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>\n</tr>\n<tr>\n  <td>macOS</td>\n  <td>3 (М1)</td>\n  <td>7 ГБ</td>\n  <td>14 ГБ</td>\n  <td> arm64 </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-26-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><code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/xcode-27-arm64-Readme.md\">xcode-27</a></code> ()Общедоступная предварительная версия </td>\n</tr>\n```\n\n  </tbody>\n</table>\n\nПомимо стандартных GitHubразмещённых раннеров, GitHub клиентам предлагают GitHub Team и GitHub Enterprise Cloud планируют различные управляемые виртуальные машины с расширенными функциями — например, большим количеством ядер и дискового пространства, машины с GPU и ARM. Дополнительные сведения см. в разделе [Более крупные бегуны](/ru/actions/concepts/runners/larger-runners).\n\n> \\[!NOTE]\n> Раннер-образы `-latest` — это самые свежие стабильные образы, которые GitHub предоставляют, а возможно, и не являются самой новой версией операционной системы, доступной у поставщика операционной системы.\n\n> \\[!WARNING]\n> Образы бета-версии и устаревшие предоставляются как есть, \"со всеми сбоями\" и \"как доступны\" и исключены из соглашения об уровне обслуживания и гарантии. Для образов бета-версий может не оказываться поддержка.\n\n#### Пример: указание операционной системы\n\n```yaml\nruns-on: ubuntu-latest\n```\n\nДополнительные сведения см. в разделе [Средства выполнения тестов, размещенные в GitHub](/ru/actions/concepts/runners/github-hosted-runners).\n\n## Выбор локальных средств выполнения тестов\n\nЧтобы указать локальное средство выполнения тестов для задания, настройте `runs-on` в файле рабочего процесса, используя метки локального средства выполнения тестов.\n\nУ локальных модулей выполнения может быть `self-hosted` метка. При настройке локального runner по умолчанию мы будем включать метку `self-hosted`. Вы можете передать `--no-default-labels` флаг, чтобы предотвратить применение локальной метки. Метки можно использовать для создания параметров целевого назначения для средств выполнения, таких как операционная система или архитектура, мы рекомендуем предоставить массив меток, начинающихся с `self-hosted` (это должно быть указано сначала), а затем включить дополнительные метки по мере необходимости. При указании массива меток задания будут помещены в очередь в средства выполнения тестов, которые имеют все указанные метки.\n\n> \\[!NOTE] Actions Runner Controller не поддерживает эту `self-hosted` метку.\n\n#### Пример: использование меток для выбора средства выполнения тестов\n\n```yaml\nruns-on: [self-hosted, linux]\n```\n\nДополнительные сведения см. в разделе \\[AUTOTITLE и [Локальные средства выполнения тестов](/ru/actions/concepts/runners/self-hosted-runners)]\\(/actions/how-tos/manage-runners/self-hosted-runners/use-in-a-workflow).\n\n## Выбор бегуна в группе\n\nВы можете использовать `runs-on` для целевых групп runner, чтобы задание выполнялось на любом средстве выполнения, являющегося членом этой группы. Для более детального управления можно также объединить группы runner с метками.\n\nГруппы runner могут иметь [крупное средство выполнениятолько локальные или](/ru/actions/concepts/runners/larger-runners)[локальные модули выполнения](/ru/actions/how-tos/manage-runners/self-hosted-runners) в качестве членов.\n\n#### Пример. Использование групп для управления выполнением заданий\n\nВ этом примере бегунки были добавлены в группу под названием `build-runners`. Ключ `runs-on` отправляет задание любому доступному `build-runners` средству выполнения в группе:\n\n```yaml\nname: learn-github-actions\non: [push]\njobs:\n  check-bats-version:\n    runs-on: \n      group: build-runners\n    steps:\n      - uses: actions/checkout@v6\n      - uses: actions/setup-node@v7\n        with:\n          node-version: '14'\n      - run: npm install -g bats\n      - run: bats -v\n```\n\n#### Пример. Объединение групп и меток\n\nПри сочетании групп и меток средство выполнения должно соответствовать обоим требованиям, чтобы иметь право на выполнение задания.\n\nВ этом примере `runs-on` ключ объединяется `group` так `labels` , что задание направляется к любому доступному бегущему в группе, который также имеет совпадающую метку:\n\n```yaml\nname: learn-github-actions\non: [push]\njobs:\n  check-bats-version:\n    runs-on:\n      group: ubuntu-runners\n      labels: ubuntu-24.04-16core\n    steps:\n      - uses: actions/checkout@v6\n      - uses: actions/setup-node@v7\n        with:\n          node-version: '14'\n      - run: npm install -g bats\n      - run: bats -v\n```"}