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 предоставляется с открытым кодом. Сведения о проблемах можно внести в репозиторий средства выполнения. При выпуске новой версии приложение средства выполнения тестов автоматически обновляет себя, когда ему назначается задание, или в течение недели после выпуска, если никакое задание не назначается.

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

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

Различия размещенных в GitHub и локальных средств выполнения тестов

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

Средства выполнения тестов, размещенных в GitHub

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

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

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

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

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

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

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

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

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

  • Время выполнения рабочего процесса — каждый запуск рабочего процесса ограничен 35 днями. По достижении этого предела выполнение рабочего процесса будет отменено. Этот период включает длительность выполнения и время, затраченное на ожидание и утверждение.
  • Время в очереди заданий — каждое задание для локальных средств выполнения тестов может находиться в очереди не более 24 часов. Если локальное средство выполнения тестов не запускает выполнение задания в течение этого времени, задание завершается и не может быть выполнено.
  • Запросы API . Вы можете выполнить до 1000 запросов к API GitHub в час для всех действий в репозитории. При превышении запросов дополнительные вызовы API завершатся ошибкой, что может привести к сбою заданий.
  • Матрица заданий — Матрица заданий может создавать не более 256 заданий для каждого выполнения рабочего процесса. Это ограничение применяется как к размещенным в GitHub Enterprise Cloud, так и к локальным средствам выполнения. - Очередь выполнения рабочего процесса: для каждого репозитория помещать в очередь с 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, macOS, Windows (в настоящее время находится в бета-версии).
  • ARM32 -Linux.

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

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

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

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

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

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

github.com
api.github.com

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

codeload.github.com

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

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

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

*.blob.core.windows.net

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

*.actions.githubusercontent.com

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

*.pkg.github.com
ghcr.io

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

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

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

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

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

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

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

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

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

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

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