Skip to main content

Использование локальных средств выполнения в рабочем процессе

Чтобы использовать локальные средства выполнения в рабочем процессе, можно использовать метки или группы, чтобы указать средство выполнения для задания.

Примечание.

GitHub Enterprise Serverразмещенные в данный момент средства выполнения не поддерживаются в GitHub.

Использование меток по умолчанию для маршрутизации заданий

Локальное средство выполнения автоматически получает определенные метки при добавлении в GitHub Actions. Они служат для указания операционной системы и аппаратной платформы:

  • self-hosted: метка по умолчанию, применяемая к локальным запускам.
  • linux, windows или macOS — применяется в зависимости от операционной системы;
  • x64, ARM или ARM64 — применяются в зависимости от архитектуры оборудования.

Код YAML рабочего процесса можно использовать для отправки заданий в средства выполнения с сочетанием этих меток. В этом примере выполнение задания допускается в локальном средстве выполнения со всеми тремя метками:

runs-on: [self-hosted, linux, ARM64]
  • self-hosted — задание выполняется в локальном средстве выполнения.
  • linux — использовать только средство выполнения на основе Linux.
  • ARM64 — использовать средство выполнения только на основе оборудования ARM64.

Чтобы создать отдельные локальные модули выполнения без меток по умолчанию, передайте --no-default-labels флаг при создании средства выполнения.

Использование пользовательских меток для маршрутизации заданий

Вы можете создавать пользовательские метки и назначать их локальным средствам выполнения в любое время. Пользовательские метки позволяют отправлять задания в определенные типы локальных средств выполнения в зависимости от того, как они помечены.

Например, если заданию требуется конкретный тип графического оборудования, можно создать пользовательскую метку gpu и назначить ее средствам выполнения с этим оборудованием. Выполнение задания допускается в локальном средстве выполнения, которому назначены все соответствующие метки.

В этом примере показано задание с сочетанием меток по умолчанию и пользовательских меток:

runs-on: [self-hosted, linux, x64, gpu]
  • self-hosted — задание выполняется в локальном средстве выполнения.
  • linux — использовать только средство выполнения на основе Linux.
  • x64 — использовать средство выполнения только на основе архитектуры x64.
  • gpu — эта пользовательская метка была вручную назначена локальным средствам выполнения с установленным GPU.

Метки работают в совокупности, то есть для обработки задания локальное средство выполнения должно иметь все четыре метки.

Использование групп для маршрутизации заданий

В этом примере средства запуска 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