Как стать автором
Обновить

Комментарии 4

А какие у него преимущества по сравнению с github actions или gitlab-ci ?

С технической точки зрения, jenkins/gitlab-ci/github actions - это штуки разных поколений.

Самый старый jenkins. Для расширения функциональности надо ставить плагины, реюзабельность пайплайнов примерно никакая, защищённость билд-инфраструктуры от зловредных действий со стороны билд-процесса очень слабая, нет внятных способов доставки билд-инструментов на агенты (в статье вон руками npm ставят).

Дальше идёт gitlab ci. Тут уже вовсю code-driven подход, сломать гитлаб кривым билд-скриптом уже не выйдет, при запуске раннеров в докере инфраструктура в безопасности, а также докер в сочетании с container registry отвечает на вопрос "как доставить на билд-агенты нужный софт, причём одинаковый". Но всё ещё слабый реюз кусков пайплайна между проектами.

И, наконец, последнее поколение - github actions. Его киллер-фича - это собственно сами экшены, которые имеют чётко определённый формат общения и жизненный цикл, что позволяет по всему миру публиковать отдельные "кирпичи", из которых строится билд-процесс, в виде отдельных репозиториев: https://github.com/marketplace?type=actions

Ну а дальше ложки дёгтя: gitlab, в силу своей бизнес-модели, за часть фич (некоторые из которых могут оказаться критически необходимы конкретно для вашего проекта) хочет денежек. А github actions в self-hosted мало того что тоже небесплатен, так ещё и не содержит provisioning'а билд-агентов, оно доступно только в их облаке.

Итого, на мой взгляд, если вы готовы жить на сторонней инфраструктуре, то на сегодняшний день лучшее решение - это github actions. А если вам нужен self-hosted, то предпочтительнее gitlab ci.

Отличное руководство, очень подробное, спасибо!
В свое время когда надо было настроить развертывание кода, вместо Jenkins использовал более упрощенный инструмент Deliverybot, сразу интегрированный с GitHub Actions.
Свою задачу выполнял на все 100, ничего особенного тогда и не требовалось больше. Если кому-то подойдет, рекомендую. Осваивается очень просто:
app.deliverybot.dev
deliverybot.dev/docs
github.com/deliverybot

А зачем jenkins?

GitHub уже сам предоставляет средства ci

Зарегистрируйтесь на Хабре, чтобы оставить комментарий