Раннеры

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

Runner в GitHub Actions — это вычислительная среда, выполняющая шаги задания workflow; каждое задание объявляет её через ключ runs-on. GitHub предоставляет hosted runner'ы на Ubuntu, Windows и macOS, создаваемые заново для каждого задания и предустановленные с общими инструментами, а self-hosted runner'ы позволяют зарегистрировать собственные физические, виртуальные или контейнеризованные машины для работы внутри вашей сети или на специализированном оборудовании. Агент runner'а опрашивает GitHub на предмет заданий, загружает определение workflow, материализует секреты и GITHUB_TOKEN, затем транслирует логи и артефакты обратно в сервис. Runner'ы — наиболее важный примитив ёмкости и безопасности в любом CI/CD-пайплайне на GitHub Actions, поскольку они определяют производительность, стоимость и радиус поражения при компрометации workflow.

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

Раннеры: 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) для воспроизводимости после стабилизации образа.

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

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

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

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