Характеристики runners

Тема дорожной карты · GitHub Actions

GitHub-hosted runner'ы поставляются с документированными аппаратными характеристиками: стандартные runner'ы Linux и Windows предлагают 4 vCPU, 16 ГБ ОЗУ и 14 ГБ SSD, а runner'ы macOS и платные тарифы большего объёма предоставляют больше ядер, памяти и вариантов архитектуры, включая ARM64. Выбранные через runs-on характеристики runner'а непосредственно влияют на время сборки, особенно для задач, масштабируемых с CPU и пропускной способностью диска: сборка образов Docker, компиляция Gradle, браузерные тесты. Larger runner'ы (ubuntu-latest-8-cores, ubuntu-latest-16-cores) тарифицируются поминутно с более высоким множителем, поэтому компромисс — время выполнения против стоимости. Self-hosted runner'ы позволяют использовать любые характеристики — GPU, терабайты ОЗУ, ARM-кластеры — ценой операционных затрат на патчинг, масштабирование и защиту парка.

Как это работает

Характеристики runners: GitHub-hosted runners (ubuntu-latest, windows-latest, macos-latest — свежая VM на job, предустановлены распространённые тулы), GitHub-hosted larger runners (больше CPU/RAM, платно), self-hosted runners (ваши машины, бесплатно, но управляете сами). ARM-runners на некоторых планах. Логи job стримятся живо; артефакты (actions/upload-artifact, download-artifact) передают файлы между jobs.

Когда применять

ubuntu-latest — почти для всего: быстрейший пул, большинство actions на нём тестируется. Larger runners — для тяжёлых сборок (долгая компиляция, большая test suite). Self-hosted — для: сборок с GPU, сборок с доступом к приватной инфре (БД, internal registries), сборок, которым не доверяете VM GitHub. Пиньте конкретную версию ubuntu (ubuntu-22.04) для воспроизводимости после стабилизации образа.

Типичные ошибки

Ловушки Характеристики runners: ubuntu-latest тихо меняет major-версию OS (внезапно список apt-пакетов другой); self-hosted runner оставлен online + idle (security-риск — авто-выключение через actions/runner-action-listener или похожее); self-hosted runners не изолированы per repo (malicious workflow одного репо pwn-ит другие, делящие runner).

Связанные понятия

Полезные ресурсы