Bitbucket Server (ранее известный как Stash) — решение для централизованного управления разработкой, позволяющее управлять вашими репозиториями, в том числе не открывая доступа к ним извне организации. Bitbucket позволяет упростить хранение репозиториев с исходными кодами на вашем сервере и обеспечивает простоту доступа к репозиториям для всех членов вашей команды.

В мире IT известно, что Bitbucket может быть проинтегрирован с другими продуктами и платформами в единую экосистему, которая делает процесс разработки всеобъемлющим и удобным. Чаще всего Bitbucket интегрируется с JIRA. Однако, поиск и локализация проблем — не единственная задача, с которой типовой процесс разработки сталкивается каждый день, и даже несколько раз в день. Более важной задачей является сохранение целостности проекта в процессе внесения дополнений и исправлений в код. Для этих задач вы можете использовать CI-сервер, который в том числе позволяет создавать сборки проектов и выполнять серии тестов для автоматической проверки функциональности.

Bitbucket «из коробки» предлагает интеграцию с родственным решением от AtlassianBamboo. Но, помимо 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 — поддержка новых версий TeamСity (в TeamCity 10 этот плагин будет встроен «из коробки» — прим. переводчика), быстрый выпуск новых версий и поддержка от команды разработчиков с мировой известностью. На стороне TeamCity Stash(Bitbucket) Integration — чуть больше функциональности и подробная инструкция по настройке плагина. Выбор аддона остается за вами и зависит от ваших требований и пожеланий.

Комментарии (0)