Поиск по сайту:

Как запускать сборки Github Actions на собственных серверах с помощью самостоятельных исполнителей


Github Actions — это конвейеры автоматизации, которые можно использовать для запуска тестирования и сборки CI. Он работает в облаке через серверы Github, но в некоторых случаях, таких как интенсивная компиляция кода, вы можете предпочесть запускать их на своих собственных выделенных рабочих узлах.

Зачем использовать автономные бегуны?

Одним из основных преимуществ Github Actions является то, что он бесплатный и хорошо интегрирован в систему Github. Создание новых коммитов или тегов выпуска напрямую запускает конвейер действий, если вы настроили его для этого.

Действия Github оплачиваются в «минутах», а общедоступные репозитории с открытым исходным кодом имеют неограниченное количество минут. Однако, если вы работаете над частным репозиторием, у вас будет только 2000 или 3000 с планами Github Pro или Teams. Вы можете купить больше минут напрямую или перейти на Github Enterprise, который поставляется с 50 000 минут.

Однако Github также поддерживает возможность самостоятельного размещения машины, на которой работает конвейер. Вы можете использовать любую машину в качестве автономного исполнителя, включая локальные машины, выделенные серверы или облачные экземпляры VPS. Это может быть очень полезно, особенно если у вас есть запасное оборудование.

Это дает ряд преимуществ, помимо экономии средств при высокой активности рабочих нагрузок. Часто компиляция кода может быть очень трудоемкой задачей. Хотя сборки Github Actions не обязательно медленные, они по-прежнему работают на общих облачных вычислениях, поэтому вам может быть полезно запускать сборку на высокопроизводительном выделенном сервере. То же самое относится и к приложениям, интенсивно использующим память, которым может потребоваться много оперативной памяти для завершения работы.

Помимо производительности, самостоятельный хостинг также позволяет вам контролировать среду для сборки. Возможно, вам нужно интегрироваться с локальными серверами или программным обеспечением, или вам нужно запустить операционную систему, которая недоступна для запуска Github по умолчанию (она поддерживает Linux, Windows и macOS, но не определенные сборки Linux, кроме Ubuntu).

Настройка автономного раннера

Настройка бегуна довольно проста. По сути, вам нужно установить программное обеспечение для запуска на свой компьютер и подключить его к Github. Как только он станет доступен, вы сможете настроить определенные действия Github для использования собственного исполнителя вместо стандартных.

Вы можете добавить бегунов в определенный репозиторий или добавить их в организацию Github. Добавление их для всей организации, как правило, намного полезнее, но настройка для любого из них одинакова.

Перейдите к настройкам вашей организации и в разделе «Действия» > «Исполнители» добавьте нового исполнителя.

Github предоставляет шаги по настройке и установке бегуна здесь. Вы можете скопировать и вставить эти команды, но вы также можете использовать образ Docker, если предпочитаете запускать его таким образом.

В следующем разделе вы связываете его с Github. При этом используется сгенерированный токен, поэтому он может получить доступ к вашей учетной записи и проверить бегуна.

./config.sh --url https://github.com/Organization --token XXXXXX

На этом экране вы можете выбрать имя бегуна, группу, которой он назначен, и любые связанные с ним метки. Их можно использовать для фильтрации бегунов в конфигурациях действий.

Затем вам нужно запустить бегун. Возможно, вы захотите запустить это под tmux или настроить службу для автоматического запуска.

./run.sh

Если вы используете общедоступный репозиторий, возможность использовать автономные бегуны по умолчанию отключена. Это связано с тем, что запуск сборок на вашем собственном оборудовании представляет собой потенциальную угрозу безопасности, если вы запускаете сборки для сторонних запросов на вытягивание. Если вы не выполняете сборку запросов на вытягивание, это не проблема, и вы можете включить ее в настройках «Runner Group» по умолчанию.

Затем вы можете использовать тег self-hosted , чтобы сборки выполнялись на этом исполнителе.

Бегун должен подобрать его почти сразу.