Skip to main content

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

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

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

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

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

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

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

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

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

Note

Если вы используете временные средства выполнения и отключили автоматические обновления, перед обновлением ваш экземпляр GitHub Enterprise Server, сначала следует обновить локальные модули выполнения до версии приложения runner, которое будет выполняться в обновленном экземпляре. Обновление ваш экземпляр GitHub Enterprise Server перед обновлением временных бегунов может привести к отключению бегунов. Дополнительные сведения см. в разделе Обновление GitHub Enterprise Server.

Локальное средство выполнения автоматически удаляется из GitHub Enterprise Server, если он не подключен к GitHub Actions в течение более 14 дней. Временное локальное средство выполнения автоматически удаляется из GitHub Enterprise Server при отсутствии подключения к 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 можно выполнять до 1000 запросов к API GitHub в час по всем действиям в репозитории. Если запросы превышены, дополнительные вызовы API завершаются ошибкой, что может привести к сбою заданий.
  • Матрица заданий. Матрица заданий может создавать не более 256 заданий для каждого выполнения рабочего процесса. Это ограничение применяется как к размещенным в GitHub Enterprise Server, так и к локальным средствам выполнения.
  • Очередь выполнения рабочего процесса: для каждого репозитория помещать в очередь с 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.
  • ARM32 -Линукс.

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

Для использования действий из GitHub.com с GitHub Enterprise Server или для использования действий actions/setup-LANGUAGE с локальными средствами выполнения тестов, не имеющими доступа к Интернету, может потребоваться дополнительная настройка. Дополнительные сведения см. в разделе "Managing access to actions from GitHub.com" и обратитесь к администратору сайта GitHub Enterprise.

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

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

Подключение между локальными средствами выполнения и GitHub Enterprise Server превышает HTTP (порт 80) или HTTPS (порт 443). Чтобы обеспечить подключение по протоколу HTTPS, настройте TLS для ваш экземпляр GitHub Enterprise Server. Дополнительные сведения см. в разделе "Configuring TLS".

Требуется только исходящее подключение от средства выполнения к ваш экземпляр GitHub Enterprise Server . Нет необходимости входящего подключения от ваш экземпляр GitHub Enterprise Server к средству выполнения. Для работы кэширования средство выполнения должно иметь возможность взаимодействовать с хранилищем BLOB-объектов и напрямую скачивать содержимое из него.

GitHub Enterprise Server должен принимать входящие подключения от средств выполнения через HTTP(S) на ваш экземпляр GitHub Enterprise Serverимя узла и поддомен API, и средства выполнения должны разрешать исходящие подключения через HTTP(S) на ваш экземпляр GitHub Enterprise Serverимя узла и поддомен API.

Для работы локальных средств выполнения тестов не требуется внешний доступ к Интернету. В результате можно использовать сетевую маршрутизацию для прямого обмена данными между локальным runner и ваш экземпляр GitHub Enterprise Server. Например, можно назначить частный IP-адрес локальному runner и настроить маршрутизацию для отправки трафика в ваш экземпляр GitHub Enterprise Server, без необходимости передачи трафика через общедоступную сеть.

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

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

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

Не требуется подключаться к GitHub.com, если вы не включили автоматический доступ к действиям GitHub.com для ваш экземпляр GitHub Enterprise Server. Дополнительные сведения см. в разделе About using actions in your enterprise.

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

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

Note

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

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

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

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

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

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

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

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

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