Примечание. В GitHub Enterprise Server в настоящее время не поддерживаются средства выполнения тестов, размещенные в GitHub. Дополнительные сведения о планируемой поддержке в будущем см. в GitHub public roadmap.
О самостоятельно размещенных средствах выполнения
Локальное средство выполнения тестов — это система, которая развертывается и управляется для выполнения заданий из GitHub Actions в экземпляр GitHub Enterprise Server. Дополнительные сведения о GitHub Actions см. в разделе Общие сведения о GitHub Actions" и "Сведения о GitHub Actions для предприятий".
С помощью локальных средств выполнения тестов можно создавать пользовательские конфигурации оборудования, которые соответствуют вашим потребностям к вычислительной мощности или памяти для выполнения больших заданий, установки программного обеспечения, доступного в локальной сети, и выбрать операционную систему. Локальные средства выполнения могут быть физическими, виртуальными, в контейнере, локальной среде или в облаке.
Вы можете добавить локальные средства выполнения тестов на различных уровнях иерархии управления.
- Средства выполнения тестов на уровне репозитория предназначены для одного репозитория.
- Средства выполнения тестов на уровне организации могут обрабатывать задания для нескольких репозиториев в организации.
- Средства выполнения тестов на корпоративном уровне могут назначаться нескольким организациям в корпоративной учетной записи.
Компьютер средства выполнения подключается к GitHub Enterprise Server с помощью локального приложения средства выполнения GitHub Actions. Приложение средства запуска GitHub Actions предоставляется с открытым кодом. Сведения о проблемах можно внести в репозиторий средства выполнения. При выпуске новой версии приложение средства выполнения тестов автоматически обновляет себя, когда ему назначается задание, или в течение недели после выпуска, если никакое задание не назначается.
Примечание. Если вы используете временные средства выполнения тестов и отключили автоматическое обновление, перед обновлением экземпляр GitHub Enterprise Server необходимо сначала обновить локальные средства выполнения до версии приложения средства выполнения, которое будет запускать обновленный экземпляр. Обновление экземпляр GitHub Enterprise Server перед обновлением временных средств выполнения может привести к отключению средств выполнения. Дополнительные сведения см. в разделе Обновление GitHub Enterprise Server.
Локальное средство выполнения автоматически удаляется из GitHub Enterprise Server при отсутствии подключения к GitHub Actions в течение более 30 дней.
Дополнительные сведения об установке и использовании локальных средств выполнения тестов см. в разделах Добавление локальных средств выполнения и Использование локальных средств выполнения в рабочем процессе.
Различия размещенных в GitHub и локальных средств выполнения тестов
Размещенные в GitHub средства выполнения тестов предлагают более быстрый и простой способ запуска рабочих процессов, а локальные средства выполнения тестов являются способом запуска рабочих процессов в вашей собственной пользовательской среде с широкими возможностями настройки.
Средства выполнения тестов, размещенных в GitHub
- Получение автоматических обновлений для операционной системы, предварительно установленных пакетов и средств, а также самостоятельного приложения средства выполнения.
- Управляются и обслуживаются GitHub.
- Предоставляют чистый экземпляр для каждого выполнения задания.
- Используют бесплатные минуты в вашем плане GitHub с поминутными тарифами, которые применяются после превышения количества бесплатных минут.
Локальные средства выполнения тестов
- Получайте автоматические обновления только для локального приложения средства выполнения тестов. Вы несете ответственность за обновление операционной системы и всего другого программного обеспечения.
- Может использовать облачные службы или локальные компьютеры, за которые вы уже платите.
- Являются настраиваемыми под ваше оборудование, операционную систему, программное обеспечение и требования безопасности.
- Не нуждаются в чистом экземпляре для каждого выполнения задания.
- Могут использоваться с GitHub Actions, но вы отвечаете за затраты на обслуживание ваших компьютеров средств выполнения тестов.
- Можно упорядочить в группы, чтобы ограничить доступ к определенным организациям и репозиториям. Дополнительные сведения см. в разделе Управление доступом к самостоятельно размещенным средствам выполнения с помощью групп.
Требования для компьютеров локальных средств выполнения тестов
Вы можете использовать любой компьютер в качестве локального средства выполнения тестов, если он соответствует следующим требованиям.
- На этом компьютере можно установить и запустить приложение локального средства выполнения тестов. Дополнительные сведения см. в разделе Поддерживаемые архитектуры и операционные системы для локальных средств выполнения тестов.
- Компьютер может взаимодействовать с GitHub Actions. Дополнительные сведения см. в разделе Обмен данными между локальными средствами выполнения тестов и GitHub Enterprise Server.
- На компьютере достаточно аппаратных ресурсов для того типа рабочих процессов, которые вы планируете запускать. Само приложение локального средства выполнения тестов требует только минимальных ресурсов.
- Если вы хотите запускать рабочие процессы, использующие действия контейнеров Docker или контейнеры служб, необходимо использовать компьютер Linux и установить Docker.
Автоммасштабирование локальных средств выполнения тестов
Вы можете автоматически увеличивать или уменьшать количество локальных средств выполнения тестов в вашей среде в ответ на полученные события веб-перехватчика. Дополнительные сведения см. в разделе Автомасштабирование с помощью локальных средств выполнения.
Ограничения использования
Существуют некоторые ограничения на использование GitHub Actions при использовании локальных средств выполнения тестов. Эти ограничения могут меняться.
- Время выполнения рабочего процесса . Каждое выполнение рабочего процесса ограничено 35 днями. По достижении этого предела выполнение рабочего процесса будет отменено. Этот период включает длительность выполнения и время, затраченное на ожидание и утверждение.
- Время в очереди заданий — каждое задание для локальных средств выполнения тестов может находиться в очереди не более 24 часов. Если локальное средство выполнения тестов не запускает выполнение задания в течение этого времени, задание завершается и не может быть выполнено.
- Запросы API . Вы можете выполнить до 1000 запросов к API GitHub в час для всех действий в репозитории. При превышении запросов дополнительные вызовы API завершатся ошибкой, что может привести к сбою заданий.
- Матрица заданий — Матрица заданий может создавать не более 256 заданий для каждого выполнения рабочего процесса. Это ограничение применяется как к размещенным в GitHub Enterprise Server, так и к локальным средствам выполнения. - Очередь выполнения рабочего процесса: для каждого репозитория помещать в очередь с 10-секундным интервалом можно не более 500 выполнений рабочих процессов. Если выполнение рабочего процесса достигает этого предела, оно прекращается и завершается сбоем.
Непрерывность рабочих процессов для локальных средств выполнения тестов
Если службы GitHub Actions временно недоступны, выполнение рабочего процесса отменяется, если он не был помещен в очередь в течение 30 минут после активации. Например, если рабочий процесс активируется и службы GitHub Actions недоступны в течение 31 минуты или дольше, выполнение рабочего процесса не будет обработано.
Поддерживаемые архитектуры и операционные системы для локальных средств выполнения тестов
Для приложения локального средства выполнения тестов поддерживаются следующие операционные системы.
Linux
- Red Hat Enterprise Linux 7 или более поздней версии
- CentOS 7 или более поздней версии
- Oracle Linux 7 или более поздней версии
- Fedora 29 или более поздней версии
- Debian 9 или более поздней версии
- Ubuntu 16.04 или более поздней версии.
- Linux Mint 18 или более поздней версии
- openSUSE 15 или более поздней версии
- SUSE Enterprise Linux (SLES) 12 SP2 или более поздней версии
Windows
- Windows 7 64-разрядная
- Windows 8.1 64-разрядная
- Windows 10 64-разрядная
- Windows Server 2012 R2 64-разрядная
- Windows Server 2016, 64-разрядная версия
- Windows Server 2019 64-разрядная
- 64-разрядная версия Windows Server 2022
macOS
- macOS 10.13 (High Sierra) или более поздней версии
Архитектуры
Для приложения локального средства выполнения тестов поддерживаются следующие процессорные архитектуры.
x64
— Linux, macOS, Windows.ARM64
— Linux.ARM32
-Linux.
Поддерживаемые действия для локальных средств выполнения тестов
Для использования действий из GitHub.com с 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 к средству выполнения тестов не требуется.
GitHub Enterprise Server должны принимать входящие подключения от средств выполнения по HTTP(S) в экземпляр GitHub Enterprise Server имя узла и поддомен API в экземпляр GitHub Enterprise Server. и средства выполнения должны разрешать исходящие подключения через HTTP(S) к имени узла и поддомену API экземпляр GitHub Enterprise Server.
Для работы локальных средств выполнения тестов не требуется внешний доступ к Интернету. В результате можно использовать сетевую маршрутизацию для прямого взаимодействия между локальным модулом выполнения тестов и экземпляр 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
Примечание. Некоторые из перечисленных выше доменов настраиваются с помощью записей CNAME
. Для некоторых брандмауэров может потребоваться рекурсивно добавить правила для всех записей CNAME
. Обратите внимание, что записи CNAME
в будущем могут измениться, и что только указанные выше домены останутся неизменными.
Безопасность локального средства выполнения тестов
Недоверенные рабочие процессы, выполняющиеся в локальном средстве выполнения тестов, представляют значительные риски безопасности для вашего компьютера и сетевой среды, особенно если компьютер сохраняет свою среду между выполнениями заданий. Некоторые риски перечислены ниже.
- Вредоносные программы, работающие на компьютере.
- Утечка песочницы средства выполнения тестов компьютера.
- Предоставление доступа к сетевой среде компьютера.
- Сохранение на компьютере нежелательных или опасных данных.
Дополнительные сведения о защите безопасности для локальных средств выполнения тестов см. в разделе Защита системы безопасности для GitHub Actions.