Skip to main content

О самостоятельно размещенных средствах выполнения

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

О самостоятельно размещенных средствах выполнения

Локальное средство выполнения — это система, которую вы развертываете и управляете выполнением заданий из GitHub Actions на GitHub Enterprise Cloud. Дополнительные сведения о GitHub Actionsсм. в разделе "Общие сведения о GitHub Actions" и "Сведения о GitHub Actions для предприятий".

Локальные средства выполнения тестов обеспечивают больший контроль над оборудованием, операционной системой и программными средствами, чем средства выполнения тестов, размещенные в GitHub. С помощью локальных средств выполнения тестов можно создавать пользовательские конфигурации оборудования, которые соответствуют вашим потребностям к вычислительной мощности или памяти для выполнения больших заданий, установки программного обеспечения, доступного в локальной сети, и выбрать операционную систему, чего не могут предложить средства выполнения тестов, размещенные в GitHub. Локальные средства выполнения могут быть физическими, виртуальными, в контейнере, локальной среде или в облаке.

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

  • Средства выполнения тестов на уровне репозитория предназначены для одного репозитория.
  • Средства выполнения тестов на уровне организации могут обрабатывать задания для нескольких репозиториев в организации.
  • Средства выполнения тестов на корпоративном уровне могут назначаться нескольким организациям в корпоративной учетной записи.

Компьютер средства выполнения подключается к GitHub Enterprise Cloud с помощью локального приложения средства выполнения GitHub Actions. Приложение средства запуска GitHub Actions предоставляется с открытым кодом. Сведения о проблемах можно внести в репозиторий средства выполнения. При выпуске новой версии приложение runner автоматически обновляется, когда задание назначается средству выполнения или в течение недели после того, как средство выполнения не было назначено каких-либо заданий.

Локальное средство выполнения автоматически удаляется из GitHub Enterprise Cloud, если он не подключен к GitHub Actions в течение более 14 дней. Временное локальное средство выполнения автоматически удаляется из GitHub Enterprise Cloud при отсутствии подключения к GitHub Actions в течение более 1 дня.

Дополнительные сведения об установке и использовании локальных модулей выполнения см. в разделе "[AUTOTITLE" иДобавление локальных средств выполнения](/actions/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow)".

Различия между GitHub, размещенными и размещенными в локальном режиме.

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

GitHub, размещенных в runners:

  • Получение автоматических обновлений для операционной системы, предварительно установленных пакетов и средств, а также самостоятельного приложения средства выполнения.
  • Управляются и обслуживаются GitHub.
  • Предоставляют чистый экземпляр для каждого выполнения задания.
  • Используют бесплатные минуты в вашем плане GitHub с поминутными тарифами, которые применяются после превышения количества бесплатных минут.

Локальные средства выполнения:

  • Получать автоматические обновления только для локального приложения runner, хотя вы можете отключить автоматическое обновление средства выполнения. Дополнительные сведения об управлении обновлениями программного обеспечения runner для локальных модулей выполнения см. в разделе "Автомасштабирование с помощью локальных средств выполнения". Вы несете ответственность за обновление операционной системы и другого программного обеспечения.
  • Может использовать облачные службы или локальные компьютеры, за которые вы уже платите.
  • Являются настраиваемыми под ваше оборудование, операционную систему, программное обеспечение и требования безопасности.
  • Не нуждаются в чистом экземпляре для каждого выполнения задания.
  • Бесплатно использовать с GitHub Actions, но вы несете ответственность за обслуживание компьютеров запуска.
  • Можно упорядочить в группы, чтобы ограничить доступ к определенным рабочим процессам, организациям и репозиториям. Дополнительные сведения см. в разделе "Управление доступом к самостоятельно размещенным средствам выполнения с помощью групп".

Требования для компьютеров локальных средств выполнения тестов

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

Автоммасштабирование локальных средств выполнения тестов

Вы можете автоматически увеличивать или уменьшать количество локальных средств выполнения тестов в вашей среде в ответ на полученные события веб-перехватчика. Дополнительные сведения см. в разделе Автомасштабирование с помощью локальных средств выполнения.

Ограничения использования

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

  • Время выполнения рабочего процесса. Каждое выполнение рабочего процесса ограничено 35 днями. По достижении этого предела выполнение рабочего процесса будет отменено. Этот период включает длительность выполнения и время, затраченное на ожидание и утверждение.
  • Время очереди заданий — каждое задание для локальных модулей выполнения, которые были в очереди не менее 24 часов, будут отменены. Фактическое время в очереди может достигать 48 часов до отмены. Если локальное средство выполнения тестов не запускает выполнение задания в течение этого времени, задание завершается и не может быть выполнено.
  • Запросы API. Запросы API можно выполнять до 15000 запросов к API GitHub в час по всем действиям в репозитории. Если запросы превышены, дополнительные вызовы API завершаются ошибкой, что может привести к сбою заданий.
  • Матрица заданий. Матрица заданий может создавать не более 256 заданий для каждого выполнения рабочего процесса. Это ограничение применяется как к размещенным в GitHub Enterprise Cloud, так и к локальным средствам выполнения.
  • Очередь выполнения рабочего процесса: для каждого репозитория помещать в очередь с 10-секундным интервалом можно не более 500 выполнений рабочих процессов. Если выполнение рабочего процесса достигает этого предела, оно прекращается и завершается сбоем.
  • Регистрация локальных модулей runners — вы можете иметь не более 10 000 локальных runners в одной группе runner. Если это ограничение достигнуто, добавление нового бегуна будет невозможно.

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

Если службы GitHub Actions временно недоступны, выполнение рабочего процесса отменяется, если он не был помещен в очередь в течение 30 минут после активации. Например, если рабочий процесс активируется и службы GitHub Actions недоступны в течение 31 минуты или дольше, выполнение рабочего процесса не будет обработано.

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

Для приложения локального средства выполнения тестов поддерживаются следующие операционные системы.

Linux

  • Red Hat Enterprise Linux 8 или более поздней версии
  • CentOS 8 или более поздней версии
  • Oracle Linux 8 или более поздней версии
  • Fedora 29 или более поздней версии
  • Debian 10 или более поздней версии
  • Ubuntu 20.04 или более поздней версии
  • Linux Mint 20 или более поздней версии
  • openSUSE 15.2 или более поздней версии
  • SUSE Enterprise Linux (SLES) 15 с пакетом обновления 2 (SP2) или более поздней версии

Windows

  • Windows 10 64-разрядная версия
  • Windows 11 64-разрядная версия
  • Windows Server 2016, 64-разрядная версия
  • Windows Server 2019 64-разрядная
  • Windows Server 2022 64-разрядная версия

macOS

  • macOS 11.0 (Big Sur) или более поздней версии

Архитектуры

Для приложения локального средства выполнения тестов поддерживаются следующие процессорные архитектуры.

  • x64 — Linux, macOS, Windows.
  • ARM64 — Linux, macOS, Windows (в настоящее время в public preview).
  • ARM32 -Линукс.

Обмен данными между локальными средствами выполнения тестов и GitHub Enterprise Cloud

Локальное средство выполнения тестов подключается к GitHub Enterprise Cloud для получения назначений заданий и загрузки новых версий приложения средства выполнения тестов. Локальное средство выполнения тестов использует длинный опрос HTTPS, который открывает подключение к GitHub Enterprise Cloud на 50 секунд, и если ответ не будет получен, подключение истекает, и создается новый длинный опрос. Приложение должно быть запущено на компьютере, чтобы принимать и запускать задания GitHub Actions.

Подключение между локальными средствами выполнения и GitHub Enterprise Cloud превышает HTTPS (порт 443).

Так как локальное средство выполнения открывает подключение к GitHub, вам не нужно разрешать GitHub для подключения входящих подключений к локальному runner.

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

С помощью REST API можно получить метаданные о GitHub, включая IP-адреса служб GitHub. Дополнительные сведения об используемых доменах и IP-адресах см. в разделе "Конечные точки REST API для метаданных".

Note

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

Требуется для основных операций:

Shell
github.com
api.github.com
*.actions.githubusercontent.com

Требуется для загрузки действий:

Shell
codeload.github.com
ghcr.io
*.actions.githubusercontent.com

Требуется для отправки и скачивания сводок заданий, журналов, артефактов рабочих процессов и кэшей:

Shell
results-receiver.actions.githubusercontent.com
*.blob.core.windows.net

Требуется для обновления версий средства выполнения тестов:

Shell
objects.githubusercontent.com
objects-origin.githubusercontent.com
github-releases.githubusercontent.com
github-registry-files.githubusercontent.com

Требуется для получения маркеров OIDC:

Shell
*.actions.githubusercontent.com

Требуется для скачивания или публикации пакетов или контейнеров в GitHub Пакеты:

Shell
*.pkg.github.com
ghcr.io

Требуется для Хранилище больших файлов Git

Shell
github-cloud.githubusercontent.com
github-cloud.s3.amazonaws.com

Требуется для заданий для Dependabot updates

Shell
dependabot-actions.githubapp.com

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

Если вы используете список разрешенных IP-адресов для вашей организации GitHub или корпоративной учетной записи, необходимо добавить IP-адрес локального средства выполнения тестов в этот список разрешений. Дополнительные сведения см. в разделе «правление разрешенными IP-адресами для организации или Обеспечение применения политик параметров безопасности в вашей организации."

Вы также можете использовать локальные средства выполнения тестов с прокси-сервером. Дополнительные сведения см. в разделе Использование прокси-сервера с самостоятельно размещенными средствами выполнения.

Дополнительные сведения об устранении распространенных проблем с сетевым подключением см. в разделе "Мониторинг и устранение неполадок в самостоятельно размещенных средствах выполнения".

Безопасность локального средства выполнения тестов

С частными репозиториями рекомендуется использовать только локальные средства выполнения. Это связано с тем, что создание запроса на вытягивание, который выполняет код в рабочем процессе, создает риск запуска опасного кода на компьютере локального средства выполнения из вилок вашего общедоступного репозитория.

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

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

  • Вредоносные программы, работающие на компьютере.
  • Утечка песочницы средства выполнения тестов компьютера.
  • Предоставление доступа к сетевой среде компьютера.
  • Сохранение на компьютере нежелательных или опасных данных.

Дополнительные сведения о защите безопасности для локально размещенных средств выполнения см. в разделе "Защита системы безопасности для GitHub Actions".

Ограничение использования локальных модулей выполнения

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

Дополнительные сведения см. в разделе "[AUTOTITLE" и "Применение политик для GitHub Actions в вашем предприятии](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#limiting-the-use-of-self-hosted-runners)".

Дополнительные материалы