Обзор GitHub-hosted runners
Раннеры — это машины, которые выполняют задачи в рабочем GitHub Actions процессе. Например, средство выполнения может клонировать репозиторий локально, установить тестовое программное обеспечение, а затем выполнить команды, которые оценивают код.
GitHub предоставляет бегунов, которых можно использовать для выполнения своих задач, или вы можете [принимать своих собственных бегунов](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners). За исключением средств выполнения тестов с одним процессором, каждое средство выполнения GitHub-hosted является новой виртуальной машиной (VM), размещенной в GitHub. Single-CPU средства выполнения тестов размещаются в контейнере на общей виртуальной машине — см. [раздел AUTOTITLE](/actions/reference/runners/github-hosted-runners#single-cpu-runners).
Каждый модуль запуска поставляется с предустановленным приложением и другими инструментами. GitHub доступны раннеры с операционными системами Ubuntu Linux, Windows или macOS. Когда вы используете GitHub-hosted runner, обслуживание и модернизация машины проходят за вас.
Вы можете выбрать один из стандартных GitHubвариантов с размещением раннеров или, если вы на плане или, если вы на GitHub Team плане или GitHub Enterprise Cloud , например, подготовить раннер с большим количеством ядер, либо раннер с процессором GPU. Эти машины называются «крупное средство выполнения.» Для получения дополнительной информации см. Более крупные бегуны.
Более крупные бегуны также поддерживают пользовательские образы, которые позволяют создавать и управлять собственными заранее настроенными образами виртуальных машин. Дополнительные сведения см. в [разделе Пользовательские образы](#custom-images).
Использование GitHub-hosted runners требует доступа к сети со скоростью выгрузки и загрузки не менее 70 килобит в секунду.
Образы runner
GitHub поддерживает собственный набор образов виртуальных машин для стандартных размещённых раннеров. К ним относятся образы для macOS, x64 linux и образов Windows. Список образов и включенных средств управляются в репозитории [`actions/runner-images`](https://github.com/actions/runner-images) . Наши образы arm64 — это образы партнеров, и они управляются в репозитории [`actions/partner-runner-images`](https://github.com/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-hosted runners. См . раздел AUTOTITLE.
- Несмотря на то, что вложенная виртуализация технически возможна при использовании средств выполнения, официально она не поддерживается. Любое использование вложенных виртуальных машин является экспериментальным и осуществляется на ваш страх и риск, мы не даем никаких гарантий в отношении стабильности, производительности или совместимости.
Пользовательские образы
Пользовательские изображения позволяют начать с GitHubпредоставленного базового образа и создать собственное изображение виртуальной машины, адаптированное под ваши рабочие процессы. С помощью пользовательских изображений вы можете:
- Создавайте пользовательские образы виртуальных машин с использованием существующего синтаксиса YAML рабочего процесса.
- Предварительно настройте среды с утвержденными инструментами, исправлениями безопасности и зависимостями перед началом рабочих процессов.
- Создавайте согласованные, проверенные базовые среды для всех сборок.
Пользовательские образы могут включать код репозитория, образы контейнеров, двоичные файлы, сертификаты и другие зависимости для создания согласованной среды сборки в рабочих процессах. Это поможет вам получить контроль над цепочкой поставок. Они помогают сократить время настройки, повысить производительность сборки и повысить безопасность за счет уменьшения вектора поверхностной атаки на изображения. Администраторы также могут применять политики для управления версиями образов, хранением и возрастом в соответствии с требованиями организации к безопасности и соответствию требованиям.
Пользовательские изображения можно использовать только с более крупные бегуны. Работы, использующие кастомные изображения, выставляются по тем же ставкам за минуту, что и эти бегущие. Хранение кастомных изображений оплачивается и измеряется через GitHub Actions хранение. Дополнительные сведения см. в разделе Биллинг GitHub Actions.
Чтобы приступить к работе с пользовательскими изображениями, см. раздел AUTOTITLE.
Облачные хосты, используемые GitHub-hosted runners
GitHub размещает Linux и Windows раннеры на виртуальных машинах в Microsoft Azure с установленным приложением GitHub Actions runner. Приложение runner, размещённое на GitHub, является форком Azure Pipelines Agent. Входящие пакеты ICMP блокируются для всех виртуальных машин Azure, поэтому команды проверки связи или 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, чтобы они не представляют значительный риск безопасности.