Перш за все, станом на сьогодні, GitLab Community Edition може бути повністю сумісний з Дженкінсом. Ніякого питання.
Далі я даю кілька відгуків про успішний досвід поєднання як Дженкінса, так і GitLab CI. Я також обговорю, чи слід використовувати обидва або тільки один із них, і з якої причини.
Сподіваюся, це дасть вам якісну інформацію про ваші власні проекти.
GitLab CI і Дженкінс сильні сторони
GitLab CI
GitLab CI природно інтегрований у GitLab SCM. Ви можете створювати конвеєри, використовуючи gitlab-ci.yml
файли та управляти ними через графічний інтерфейс.
Ці конвеєри як код можуть очевидно зберігатися в кодовій базі, застосовуючи практику "все як код" (доступ, версія, відтворюваність, повторне використання тощо).
GitLab CI - це чудовий інструмент візуального управління:
- всі члени команд (включаючи нетехнічні) мають швидкий та простий доступ до статусу життєвого циклу додатків.
- тому його можна використовувати як інтерактивну та функціональну інформаційну панель для управління випуском.
Дженкінс
Дженкінс - чудовий інструмент побудови. Її сила в багатьох плагінах. Особливо мені пощастило використовувати плагіни інтерфейсу між Дженкінсом та іншими інструментами CI або CD. Це завжди кращий варіант, ніж переробити (можливо погано) діалоговий інтерфейс між двома компонентами.
Трубопровід як код також доступний за допомогою groovy
скриптів.
Використання GitLab CI та Jenkins разом
Спочатку це може здатися трохи зайвим, але поєднання GitLab CI і Jenkins є досить потужним.
- Оркестри CI GitLab (ланцюги, запуски, монітори ...) і можуть скористатися його графічним інтерфейсом, інтегрованим до GitLab
- Дженкінс виконує завдання та полегшує діалог із сторонніми інструментами.
Ще однією перевагою цієї конструкції є слабке з'єднання між інструментами:
- ми могли б замінити будь-який з компонентів фабрики побудови без необхідності переробляти весь процес CI / CD
- ми можемо створити неоднорідне середовище побудови, поєднуючи (можливо, декілька) Дженкінс, TeamCity, ви його називаєте, і все ще маємо єдиний інструмент моніторингу.
Компроміс
Ну і, звичайно, за цю конструкцію варто заплатити: початкова установка громіздка, і вам потрібно мати мінімальний рівень розуміння багатьох інструментів.
З цієї причини я не рекомендую таке налаштування, якщо тільки
- у вас є багато сторонніх інструментів для вирішення. Ось тоді Дженкінс дуже корисний зі своїми численними плагінами.
- вам доводиться мати справу зі складними програмами з неоднорідними технологіями, маючи кожне інше середовище побудови, і все ж потрібно мати єдиний інтерфейс управління життєвим циклом додатків.
Якщо ви не перебуваєте ні в одній із цих ситуацій, вам, мабуть, краще тільки з одним із двох, але не з обома.
Якби мені довелося вибрати одну
І GitLab CI, і Jenkins мають свої плюси і мінуси. Обидва є потужним інструментом. Отже, яку вибрати?
Відповідь 1
Виберіть той, у якого ваша команда (або хтось із близьких) вже має певний рівень знань.
Відповідь 2
Якщо ви все є першокурсником CI-технологій, просто виберіть його та вирушайте.
- Якщо ви використовуєте GitLab і володієте вмінням у всьому коді, то вибираєте загальний сенс, щоб вибрати GitLab CI.
- Якщо вам доводиться вести діалог з багатьма іншими інструментами CI / CD або вам абсолютно потрібен графічний інтерфейс для створення своїх робочих місць, перейдіть до Дженкінса.
Ті з вас, хто використовує GitLab і не впевнені, що продовжуватимуть це, все ж повинні пам’ятати, що, вибравши GitLab CI, це означатиме, щоб вивести всі ваші конвеєри CI / CD.
Заключне слово: баланс трохи нахиляється до Дженкінса через багато плагінів, але шанси на те, що GitLab CI швидко заповнить прогалину.