Skip to main content

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

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

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

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

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

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

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

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

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

Примечание.

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

Образы runner

GitHub поддерживает собственный набор образов виртуальных машин для наших стандартных размещенных средств выполнения. К ним относятся образы для macOS, x64 linux и образов Windows. Список образов и включенных средств управляются в репозитории actions/runner-images . Наши образы arm64 — это образы партнеров, и они управляются в репозитории actions/partner-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размещенных средств выполнения. См . раздел AUTOTITLE.
  • Несмотря на то, что вложенная виртуализация технически возможна при использовании средств выполнения, официально она не поддерживается. Любое использование вложенных виртуальных машин является экспериментальным и осуществляется на ваш страх и риск, мы не даем никаких гарантий в отношении стабильности, производительности или совместимости.

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

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

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

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

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

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

Облачные узлы, используемые средствами выполнения, размещенными в GitHub

GitHub размещает средства выполнения Linux и Windows на виртуальных машинах в Microsoft Azure с установленным приложением средства выполнения GitHub Actions. Приложение средства выполнения, размещенного в GitHubявляется вилкой агента Azure Pipelines. Входящие пакеты ICMP блокируются для всех виртуальных машин Azure, поэтому команды проверки связи или traceroute могут не работать. GitHub размещает средства запуска macOS в центрах обработки данных Azure.

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

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

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

Файл etc/hosts

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