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

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

Странно что не рассмотрели Gitlab CI. В некоторых вещах он даже интереснее будет.

или Concourse — со встроенными и очень толковыми пайплайнами.

или Concourse — со встроенными и очень толковыми пайплайнами.

Там довольно проблемно собрать docker образ не через docker, если не ошибаюсь.

собрать docker образ не через docker

это как именно?

С использованием rocker или box, например.

А разве нельзя форкнуть docker-image-resource и где-то тут вызвать что надо? Concourse как раз удобен тем что ресурсы изолированы и соединяются через четко определенные вводы и выводы.

Я называю это — довольно проблематично. В gitlab ci, например, это делается несколько проще)

Возможно вы правы (с gitlab ci конкретно у меня опыта вообще нет).


В плане concourse — он замечательно вписывается в infrastructure-as-code, благо все настраивается в одном конфиг файле (как, например, у travis). В отличие от Jenkins (хотя там, насколько я знаю, есть подвижки в эту сторону).

И Teamcity тоже
или Teamcity — тоже неплохая система «из коробки»

Похоже недостатки дженкинса так притянули, что уши оторвали :)

Из реального: на настройку необходимо время.


Gitlab CI более дружелюбный, например, но в том же время, позволяет немного меньше.

В дженкинсе меня лично жутко раздражает UI. Пробовал Blue Ocean, выглядит неплохо, но постоянные переходы на старый UI там, где недоделано, портит все впечатление.

Это согласен — UI все-таки там не модный.

Blue Ocean хорошо выглядит и ничего не умеет
С приходом Pipeline DSL и модой на мессенджеры, куда вся нотификация и результаты билдов приходят — UI уже не так критичен
Сорри за некропостинг, только сейчас наткнулся.

О недостатках Дженкинса даже не упомянули. Сложность настройки — фигня. У Дженкинса есть архитектурные недостатки, которые вообще блокируют намертво работу этого продукта.

1. Например, ограничение количества кода в Jenkinsfile. Слышали о такой проблеме? Вас не спасут даже инклуды через load. Он считает строки кода после всех инклудов. В результате люди вынуждены пилить пайплайны на куски каскадных джоб, что делает весь проект очень сложным — и там начинается пляска с бренчами. Ну или вызывать внешние скрипты, уродуя нативность процесса.

2. Плагины system-wide, а не branch-wide. Вам нужно проапгрейдить плагин? Ок, делайте это, если хватит пермишеннов от админа. А когда хватит, молитесь, что не сломали сотни других проектов. В том же CircleCI люди указывают орбы (это аналог плагина) на свой бренч. И только если все тесты прошли, они уже мерджат и не делают проблем другим людям.

3. Апдейт параметров для всей джобы с Jenkinsfile. То есть вы создаете свой бренч, хотите новый параметр, запускаеет бренч и упс… вы переписали все параметры на свой лад для всех бренчей в Multibranch job. (я надеюсь у вас хватает квалификации не использовать конвенциональные джобы и однобренченвый пайплайн).

Я могу продолжать долго. При всем уважении к Дженкинсу, как к одному из самых удачных продуктов за всю историю ИТ, он имеет огромное количество архитектурных недостатков посерьезнее, чем «сложность конфигурации».
В минусах у Jenkins значится — необходимо время на настройку. А что, первые 2е СI не требуют настройки? Проект чудесным образом сам будет собираться. Или что имелось ввиду?

Имелось в виду, что в дженкинсе нужно будет потратить больше времени на настройку, чем в других системах. Если говорить проще, тот уже его модульность стала минусом, ибо настраивать модульность реально дольше, чем просто использовать определённые "заготовки" в чём-нибудь монолитном.

Ну не знаю. По-моему очень спорно и субъективно. Сейчас в Jenkins в основном DSL используется для описания джоб. Если имеется ввиду сама настройка Jenkins как такового, то это единоразовая операция, да и что там собственно настраивать то, разве что всякие матрицы проектов и права.
А как же GitLab CI + Docker? И если брать хорошо настроенное тестирование (я использую встроенный в Laravel phpunit + вариативную настройку сред, то CI становится простым и рутинным делом
Зарегистрируйтесь на Хабре, чтобы оставить комментарий