Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

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

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

Примечание. В GitHub Enterprise Server в настоящее время не поддерживаются средства выполнения тестов, размещенные в GitHub. Дополнительные сведения о планируемой поддержке в будущем см. в GitHub public roadmap.

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

Сведения о метках локального средства выполнения тестов

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

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

Все локальные средства выполнения тестов имеют метку self-hosted. При использовании только этой метки будет выбрано любое локальное средство выполнения тестов. Чтобы выбрать средства выполнения тестов, которые соответствуют определенным критериям, таким как конкретная операционная система или архитектура, рекомендуется предоставить массив меток, начинающихся с self-hosted (сначала это должно быть указано), а затем включить дополнительные метки по мере необходимости. При указании массива меток задания будут помещены в очередь в средства выполнения тестов, которые имеют все указанные метки.

Несмотря на то что метка self-hosted не является обязательной, настоятельно рекомендуется указать ее при использовании локальных средств выполнения тестов, чтобы убедиться, что задание не указывает случайно текущие или будущие данные средства выполнения тестов, размещенные в GitHub.

Сведения о создании пользовательских меток и меток по умолчанию см. в разделе Использование меток с самостоятельно размещенными средствами выполнения.

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

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

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

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

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

Метки по умолчанию являются фиксированными: их нельзя изменять или удалять. Пользовательские метки можно применять, если требуется больший контроль над маршрутизацией заданий.

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

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

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

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

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

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

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

При маршрутизации задания в локальное средство выполнения GitHub ищет средство выполнения, соответствующее меткам задания runs-on :

  • Если GitHub находит средство выполнения в сети и неактивное средство выполнения, соответствующее меткам задания runs-on , задание назначается и отправляется в средство выполнения.
    • Если средство выполнения не принимает назначенное задание в течение 60 секунд, задание снова ставится в очередь для поиска нового средства выполнения.
  • Если GitHub не находит в сети и неактивное средство выполнения, соответствующее меткам задания runs-on , задание будет оставаться в очереди до тех пор, пока средство выполнения не перейдет в режим "в сети".
  • После нахождения в очереди в течение 24 часов задание завершается сбоем.