Использование меток по умолчанию для маршрутизации заданий
Локальное средство выполнения автоматически получает определенные метки при добавлении в 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 флаг при создании средства выполнения. Контроллер runner действий не поддерживает несколько меток.
Использование пользовательских меток для маршрутизации заданий
Вы можете создавать пользовательские метки и назначать их локальным средствам выполнения в любое время. Пользовательские метки позволяют отправлять задания в определенные типы локальных средств выполнения в зависимости от того, как они помечены.
Например, если заданию требуется конкретный тип графического оборудования, можно создать пользовательскую метку 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@v5
- 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@v5
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v