Установка runner

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

Установка self-hosted runner подключает вашу машину или ВМ к GitHub Actions, позволяя платформе отправлять jobs CI/CD-пайплайна на подконтрольную вам инфраструктуру, а не на GitHub-hosted runners. Процесс установки прост: перейдите в настройки репозитория или организации, выберите «Runners», нажмите «New self-hosted runner», выберите ОС и запустите предоставленный скрипт config.sh (Linux/macOS) или config.cmd (Windows) с токеном регистрации, который аутентифицирует runner в GitHub Actions. После настройки запустите runner командой ./run.sh для интерактивного тестирования или установите его как системный сервис через ./svc.sh install && ./svc.sh start, чтобы он сохранялся после перезагрузки и автоматически переподключался к пулу runner GitHub Actions. Self-hosted runners получают метки при регистрации (например, self-hosted, linux, arm64) и указываются в workflow через runs-on: [self-hosted, arm64], давая авторам пайплайна точный контроль над средой выполнения. Для production-использования в непрерывной интеграции запускайте self-hosted runners как изолированные, эфемерные ВМ или контейнеры, а не как постоянные общие хосты, и убедитесь, что процесс runner имеет только права, необходимые для вашего пайплайна, — в соответствии с лучшими практиками наименьших привилегий GitHub Actions.

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

Установка runner runners работают на ваших машинах (VM, bare metal, k8s). Установите actions-runner пакет; зарегистрируйте через токен. Тегайте runners labels (self-hosted, linux, gpu) — workflows матчатся. Авто-скейл пулов runner через actions-runner-controller (k8s), runs-on.com или Philips Labs/terraform-aws-github-runner. Self-hosted runners получают полный доступ к репо — никогда не расшаривайте между недоверенными проектами.

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

Self-hosted — когда: сборки требуют GPU/special hardware, доступа к приватным ресурсам по сети, дольше 6 часов, большой compute дешевле cloud-квот, или compliance запрещает публичные облака. Для РФ self-hosted на Yandex Cloud / Selectel / локальной инфре — практичный выбор; GitHub-hosted могут быть медленны или недоступны. Авто-скейл или гибернация idle-runners.

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

Ловушки Установка runner: self-hosted runner расшарен между публичными репо и приватным кодом (PR из публичного форка pwn-ит runner); runners никогда не патчатся (уязвимая поверхность); runners остаются online + принимают jobs откуда угодно (дефолт — ограничьте через runner_group); нет cleanup между jobs (state утекает).

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

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