Примечание. В 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 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. Дополнительные сведения см. в разделе Обмен данными между локальными средствами выполнения тестов и GitHub Enterprise Server.
- На компьютере достаточно аппаратных ресурсов для того типа рабочих процессов, которые вы планируете запускать. Само приложение локального средства выполнения тестов требует только минимальных ресурсов.
- Если вы хотите запускать рабочие процессы, использующие действия контейнеров Docker или контейнеры служб, необходимо использовать компьютер Linux и установить Docker.
Автоммасштабирование локальных средств выполнения тестов
Вы можете автоматически увеличивать или уменьшать количество локальных средств выполнения тестов в вашей среде в ответ на полученные события веб-перехватчика. Дополнительные сведения см. в разделе Автомасштабирование с помощью локальных средств выполнения.
Ограничения использования
Существуют некоторые ограничения на использование 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 с GitHub Enterprise Serverили использовать actions/setup-LANGUAGE
действия с локальными средствами выполнения, которые не имеют доступа к Интернету. Дополнительные сведения см. в разделе "Управление доступом к действиям с сайта 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. Дополнительные сведения см. в разделе "Настройка TLS".
Требуется только исходящее подключение от средства выполнения к GitHub Enterprise Server . Нет необходимости входящего подключения от GitHub Enterprise Server к средству выполнения. Для работы кэширования средство выполнения должно иметь возможность взаимодействовать с хранилищем BLOB-объектов и напрямую скачивать содержимое из него.
GitHub Enterprise Server должен принимать входящие подключения от пользователей по протоколу HTTP(S) по адресу ваш экземпляр GitHub Enterprise Serverимя узла и поддомен API, а в качестве поддомена API необходимо разрешить исходящие подключения через HTTP(S) к ваш экземпляр GitHub Enterprise Serverимени узла и поддомена API.
Для работы локальных средств выполнения тестов не требуется внешний доступ к Интернету. В результате можно использовать сетевую маршрутизацию для прямого обмена данными между локальным runner и GitHub Enterprise Server. Например, вы можете назначить частный IP-адрес локальному средству выполнения и настроить маршрутизацию для отправки трафика в GitHub Enterprise Server, не требуя передачи трафика через общедоступную сеть.
Вы также можете использовать локальные средства выполнения тестов с прокси-сервером. Дополнительные сведения см. в разделе Использование прокси-сервера с самостоятельно размещенными средствами выполнения.
Дополнительные сведения об устранении распространенных проблем с сетевым подключением см. в разделе "Мониторинг и устранение неполадок в самостоятельно размещенных средствах выполнения".
Обмен данными между локальными средствами выполнения тестов и GitHub.com
Не требуется подключаться к GitHub.com, если вы не включили автоматический доступ к действиям GitHub.com для GitHub Enterprise Server. Дополнительные сведения см. в разделе Сведения об использовании действий в организации.
Если вы включили автоматический доступ к действиям GitHub.com, то локальное средство выполнения тестов будет подключаться непосредственно к GitHub.com для загрузки действий. Необходимо убедиться, что компьютер имеет соответствующий сетевой доступ для взаимодействия с URL-адресами GitHub, перечисленными ниже.
github.com api.github.com codeload.github.com ghcr.io *.actions.githubusercontent.com
github.com
api.github.com
codeload.github.com
ghcr.io
*.actions.githubusercontent.com
Note
Некоторые из перечисленных доменов настраиваются с помощью CNAME
записей. Для некоторых брандмауэров может потребоваться рекурсивно добавить правила для всех записей CNAME
. Обратите внимание, что CNAME
записи могут измениться в будущем, и что только перечисленные домены останутся постоянными.
Безопасность локального средства выполнения тестов
Недоверенные рабочие процессы, выполняющиеся в локальном средстве выполнения тестов, представляют значительные риски безопасности для вашего компьютера и сетевой среды, особенно если компьютер сохраняет свою среду между выполнениями заданий. Некоторые риски перечислены ниже.
- Вредоносные программы, работающие на компьютере.
- Утечка песочницы средства выполнения тестов компьютера.
- Предоставление доступа к сетевой среде компьютера.
- Сохранение на компьютере нежелательных или опасных данных.
Дополнительные сведения о защите безопасности для локально размещенных средств выполнения см. в разделе "Защита системы безопасности для GitHub Actions".
Ограничение использования локальных модулей выполнения
владельцы могут выбрать, какие репозитории разрешены для создания локальных средств выполнения на уровне репозитория. .
Дополнительные сведения см. в разделе "Применение политик для GitHub Actions в вашем предприятии](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#limiting-the-use-of-self-hosted-runners)".