Bitbucket Server (раніше відомий як Stash) - рішення для централізованого управління розробкою, що дозволяє керувати вашими репозиторіями, в тому числі не відкриваючи доступу до них ззовні організації. Bitbucket дозволяє спростити зберігання сховищ з вихідними кодами на вашому сервері і забезпечує простоту доступу до сховищ для всіх членів вашої команди.
У світі IT відомо, що Bitbucket може бути проінтегрований з іншими продуктами і платформами в єдину екосистему, яка робить процес розробки всеосяжним і зручним. Найчастіше Bitbucket інтегрується з JIRA. Однак, пошук і локалізація проблем - не єдине завдання, з яким типовий процес розробки стикається кожен день, і навіть кілька разів на день. Більш важливим завданням є збереження цілісності проекту в процесі внесення доповнень і виправлень в код. Для цих завдань ви можете використовувати CI-сервер, який у тому числі дозволяє створювати збірки проектів і виконувати серії тестів для автоматичної перевірки функціональності.
Bitbucket «з коробки» пропонує інтеграцію з родинним рішенням від Atlassian - Bamboo. Але, крім Bamboo, існують інші CI-рішення, які також досить популярні - TeamCity і Jenkins. У нашому пості ми змалюємо специфіку інтеграції Bitbucket і TeamCity.
REST API як точка інтеграції з Bitbucket
Відтоді, як Bitbucket обзавівся REST API (насправді, він був у Stash завжди і розширювався в міру розвитку функціоналу самого Stash/Bitbucket Server - прим. перекладача), з ним стало набагато простіше працювати і будувати на його базі рішення для кожного конкретного випадку. В даний час існує кілька аддонів для інтеграції Bitbucket з CI-системами і отримання інформації про стан збірок. Вивчаючи кімти в репозиторії, ви можете одночасно бачити стан збірки і легко перейти в TeamCity для вивчення проблем, що виникли при збірці конкретного комміту, або просто завантажити останню версію програми для клієнта.
Інструменти інтеграції TeamCity і Bitbucket
В Інтернеті можна знайти два плагіни для TeamCity, які можуть бути використані для інтеграції з Bitbucket. Commit Status Publisher випущений безпосередньо JetBrains, інший - TeamCity Stash Integration - був розроблений mendhak. Обидва довели свою працездатність як засіб інтеграції Teamcity і Bitbucket. Давайте поглянемо на кожен з них і пошукаємо їх плюси і мінуси.
Інсталюємо плагіни у Teamcity
Встановлення плагінів у TeamCity достатня проста і виконується відповідно до документації. Завантажуємо zip-архіви з плагінами через адміністративну консоль Teamcity, перезапускаємо Teamcity. Плагіни доступні і готові допомогти вам отримати потрібну інформацію.
Commit Status Publisher від компанії JetBrains
У першу чергу представимо «рідний» плагін від розробника самого TeamCity, оскільки інструменти інтеграції «від розробника» зазвичай бувають зручними, продуманими і функціональними. Налаштовуємо збірку для передачі стану збірки в Bitbucket. Для цього потрібно додати Build Feature з типом Commit status publisher (цей тип стає доступним після встановлення плагіну від JetBrains). Завершуємо з'єднання з Bitbucket.
Після завершення налаштування запустимо збірку і переконаємося, що Bitbucket отримав дані з TeamCity.
Клацання на іконці збирання відкриває вікно, що містить інформацію про проект, конфігурацію та номер збирання. Також відображається кількість пройдених і проігнорованих тестів.
Під час перегляду подробиць pull request так само можна відкрити форму з інформацією про збирання.
Teamcity Stash (Bitbucket) integration от mendhak
Налаштовується плагін подібно до рішення від JetBrains. Після інсталяції з'являється build feature з ім'ям Report build status to Atlassian Bitbucket. На відміну від аддону JetBrains, з'являється більше налаштувань. Можна, наприклад, скасовану збірку позначити в Bitbucket як неуспішну. Або не показувати у Bitbucket статуси всіх збірок, залишивши тільки статус останньої збірки для кожного комміта.
Після комміту коду ви можете побачити збірки, які залежать від цього комміту, і їх стан.
Який плагін вибрати?
Потрібно відзначити, що вони дуже схожі один на одного. Обидва використовують Bitbucket REST API для оновлення статусів збірок. Обидва дуже просто встановлюються і налаштовуються. На боці «рідного» плагіну від JetBrains - підтримка нових версій TeamCity (у TeamCity 10 цей плагін буде вбудовано «з коробки» - прим. перекладача), швидкий випуск нових версій і підтримка від команди розробників зі світовою популярністю. На боці TeamCity Stash (Bitbucket) Integration - трохи більше функціональності і детальна інструкція з налаштування плагіну. Вибір аддона залишається за вами і залежить від ваших вимог і побажань.
