О самостоятельно размещенных средствах выполнения
Локальное средство выполнения тестов — это система, которая развертывается и управляется для выполнения заданий из 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. Дополнительные сведения см. в разделе Обмен данными между локальными средствами выполнения тестов и GitHub Enterprise Cloud.
- На компьютере достаточно аппаратных ресурсов для того типа рабочих процессов, которые вы планируете запускать. Само приложение локального средства выполнения тестов требует только минимальных ресурсов.
- Если вы хотите запускать рабочие процессы, использующие действия контейнеров Docker или контейнеры служб, необходимо использовать компьютер Linux и установить Docker.
Автоммасштабирование локальных средств выполнения тестов
Вы можете автоматически увеличивать или уменьшать количество локальных средств выполнения тестов в вашей среде в ответ на полученные события веб-перехватчика. Дополнительные сведения см. в разделе Автомасштабирование с помощью локальных средств выполнения.
Ограничения использования
Существуют некоторые ограничения на использование 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
Требуется для отправки и скачивания сводок и журналов заданий
actions-results-receiver-production.githubapp.com
productionresultssa*.blob.core.windows.net
Требуется для обновления версий средства выполнения тестов:
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.