Skip to main content
Skip to content

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

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

Обзор GitHub-hosted runners

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

GitHub предоставляет бегунов, которых можно использовать для выполнения своих задач, или вы можете принимать своих собственных бегунов. За исключением средств выполнения тестов с одним процессором, каждое средство выполнения GitHub-hosted является новой виртуальной машиной (VM), размещенной в GitHub. Single-CPU средства выполнения тестов размещаются в контейнере на общей виртуальной машине — см. раздел AUTOTITLE.

Каждый модуль запуска поставляется с предустановленным приложением и другими инструментами. GitHub доступны раннеры с операционными системами Ubuntu Linux, Windows или macOS. Когда вы используете GitHub-hosted runner, обслуживание и модернизация машины проходят за вас.

Вы можете выбрать один из стандартных GitHubвариантов с размещением раннеров или, если вы на плане или, если вы на GitHub Team плане или GitHub Enterprise Cloud , например, подготовить раннер с большим количеством ядер, либо раннер с процессором GPU. Эти машины называются «крупное средство выполнения.» Для получения дополнительной информации см. Более крупные бегуны.

Более крупные бегуны также поддерживают пользовательские образы, которые позволяют создавать и управлять собственными заранее настроенными образами виртуальных машин. Дополнительные сведения см. в разделе Пользовательские образы.

Использование GitHub-hosted runners требует доступа к сети со скоростью выгрузки и загрузки не менее 70 килобит в секунду.

Примечание.

Минуты прав для GitHubразмещенные средства выполнения недоступны для управляемые учетные записи пользователей. Enterprise Managed Users, которые хотели бы внести свой вклад в репозитории в организациях, которые они не являются членом репозитория организации, а затем откройте запрос на вытягивание, предназначенный для репозитория организации. Это запускает рабочие процессы в GitHubразмещенных в ней средств выполнения. Для получения дополнительной информации см. Около Enterprise Managed Users.

Образы runner

GitHub поддерживает собственный набор образов виртуальных машин для стандартных размещённых раннеров. Список образов и включенных средств управляются в репозитории actions/runner-images .

Предварительно установленное программное обеспечение для образов, принадлежащих GitHub

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

Журналы рабочих процессов включают ссылку на предустановленные инструменты в точном средстве выполнения. Чтобы найти эти сведения в журнале рабочего процесса, разверните раздел Set up job. В этом разделе разверните раздел Runner Image. Ссылка, следующая за Included Software, описывает предустановленные инструменты в средстве выполнения, которое выполняло рабочий процесс.

Дополнительные сведения см. в разделе Просмотр журнала выполнения рабочего процесса.

GitHub-Размещённые раннеры включают встроенные инструменты операционной системы по умолчанию, помимо пакетов, перечисленных в приведённых выше источниках. Например, средства выполнения Ubuntu и macOS включают grep, find, which и другие инструменты по умолчанию.

Вы также можете просмотреть счет за программное обеспечение материалов (SBOM) для каждой сборки образов запуска Windows и Ubuntu. Дополнительные сведения см. в разделе Справочник по безопасному использованию.

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

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

Если вы хотите запросить какой-либо инструмент, откройте проблему в разделе actions/runner-images. Этот репозиторий также содержит объявления обо всех основных обновлениях программного обеспечения для средств выполнения.

Примечание.

  • Также можно установить дополнительное программное обеспечение на GitHub-hosted runners. См . раздел AUTOTITLE.
  • Несмотря на то, что вложенная виртуализация технически возможна при использовании средств выполнения, официально она не поддерживается. Любое использование вложенных виртуальных машин является экспериментальным и осуществляется на ваш страх и риск, мы не даем никаких гарантий в отношении стабильности, производительности или совместимости.

Пользовательские образы

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

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

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

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

Чтобы приступить к работе с пользовательскими изображениями, см. раздел AUTOTITLE.

Облачные хосты, используемые GitHub-hosted runners

GitHub Actions использует пул вычислений с несколькими облаками для повышения доступности runner для соответствующих заданий Linux. Эти задания могут выполняться в Amazon Web Services (AWS) или Microsoft Azure.

Многооблачные вычислительные ресурсы используются для стандартных 2-ядер и 4-ядер Linux, совместимых с 2-ядрами и 4-ядрами более крупные бегуны без специализированных конфигураций. Он не применяется к Windows runners или runners с частными сетями или другими специализированными конфигурациями. Задания автоматически планируются между доступными поставщиками облачных служб.

Примечание.

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

Допустимые средства выполнения в GitHub Free, GitHub Proа GitHub Team также автоматически используют многооблачные вычислительные ресурсы. Предприятия могут GitHub Enterprise Cloud принять участие. См . раздел AUTOTITLE.

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

GitHubузлы Windows runners и runners Linux, которые не используют многооблачные вычисления на виртуальных машинах в Azure. Входящие пакеты ICMP блокируются для Azure виртуальных машин, поэтому команды ping или traceroute могут не работать. GitHub размещает раннеры для macOS в Azure дата-центрах.

Непрерывность рабочих процессов

Если службы GitHub Actions временно недоступны, выполнение рабочего процесса отменяется, если он не был помещен в очередь в течение 30 минут после активации. Например, если рабочий процесс активируется и службы GitHub Actions недоступны в течение 31 минуты или дольше, выполнение рабочего процесса не будет обработано.

Кроме того, если запуск рабочего процесса был успешно поставлен в очередь, но не обработан GitHub-hosted runner в течение 45 минут, то очередной запуск workflow отбрасывается.

Файл etc/hosts

GitHubразмещенных в среде runners подготавливаются с etc/hosts помощью файла, который блокирует сетевой доступ к различным пулам интеллектуального анализа криптовалют и вредоносным сайтам. Узлы, такие как MiningMadness.com и cpu-pool.com, перенаправляются в localhost, чтобы они не представляют значительный риск безопасности.