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

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

В этой статье

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

Примечание. В 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 при использовании локальных средств выполнения тестов. Эти ограничения могут меняться.

  • Время выполнения рабочего процесса — каждый запуск рабочего процесса ограничен 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 2019 64-разрядная

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 к средству выполнения не требуется. Чтобы кэширование работало, средство выполнения должно иметь возможность взаимодействовать с хранилищем BLOB-объектов и напрямую скачивать содержимое из него.

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

Для работы локальных средств выполнения тестов не требуется внешний доступ к Интернету. В результате вы можете использовать сетевую маршрутизацию для прямого взаимодействия между локальным модулом выполнения тестов и экземпляр 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.

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