Скрипт установки self-hosted раннера GitHub Actions
Укажите репозиторий и метки и получите скрипт: он поставит раннер под отдельным пользователем и запустит его как сервис. Токен вы вводите на своём сервере, а не здесь.
Работает целиком в браузере — ничего из введённого не отправляется на наши серверы.
Только для приватных репозиториев. В публичном pull request из форка может выполнить код на вашем сервере.
Как запустить
- На GitHub откройте Settings → Actions → Runners → New self-hosted runner и скопируйте токен.
- Скопируйте скрипт на сервер с Debian или Ubuntu и запустите от root: bash install-runner.sh.
- Когда скрипт попросит, вставьте токен. Он остаётся на вашем сервере и через эту страницу не проходит.
- Вставьте строку runs-on в свой workflow.
Нужен сервер под раннер? Тариф Small: 4 vCPU, 4 ГБ, root-доступ, $8 в месяц.
Тариф SmallКак это работает
Self-hosted раннер работает на вашей машине: сам подключается к GitHub, забирает задания и выполняет их у вас. Скрипт ставит нужные пакеты, создаёт отдельного пользователя Linux, скачивает последний выпуск раннера, регистрирует его и настраивает сервис systemd, который переживает перезагрузки. Скрипт собирается в браузере, поэтому прочитайте каждую строку перед запуском. Серверу нужен только исходящий доступ к GitHub, выделенный IP не требуется.
Вопросы и ответы
Где взять токен регистрации?
В репозитории откройте Settings → Actions → Runners → New self-hosted runner. Токен действует один час. Для раннера на всю организацию путь тот же, но в настройках организации.
Можно ли использовать self-hosted раннер с публичным репозиторием?
GitHub не советует: pull request из форка может выполнить код на вашем сервере. Используйте self-hosted раннеры с приватными репозиториями.
Нужен ли серверу выделенный IP?
Нет. Раннер сам подключается к GitHub, входящие соединения ему не нужны, поэтому подойдёт тариф без выделенного IP. По мощности большинству проектов хватает 4 vCPU и 4 ГБ памяти.