В этой статье я хотел бы поделиться своими впечатлениями от использования Атласиан Бамбук — системы непрерывной интеграции от компании Атласиан .
В проекте Java, над которым мы работаем, мы изначально использовали JIRA по требованию , то есть облачная версия JIRA, установленная на серверах компании.
Атласиан .
В определенный момент возникла необходимость внедрения системы непрерывной интеграции.
Важным требованием при выборе такой системы была поддержка системы автоматической сборки «из коробки».
Градл .
Лишь немногие системы непрерывной интеграции удовлетворяли этому требованию: хорошо известная Дженкинс , Jetbrains TeamCity И Атласский бамбук .
Ниже объясняется, как это работает и почему мы выбрали Atlassian Bamboo. Будьте осторожны – фотографий много!
Домашняя страница
Вот как выглядит домашняя страница Bamboo, отображающая список т. н.
строить планы (план сборки), т. е.
независимые наборы заданий, которые необходимо выполнять через определенные промежутки времени или при выполнении определенных условий или запускать вручную.
Каждый план может использовать один и тот же исходный код, но запускаться с разной периодичностью или развертывать приложение на разных серверах.
Например, в нашем случае необходимо было ежедневно в автоматическом режиме разворачивать приложение на тестовом сервере и собирать исходный код, предназначенный для загрузки в производство, но не выгружать его.
На главной странице отображается список планов, их статус и последние изменения в коде.
Вы также можете запустить план вручную или перейти на страницу настройки.
На странице «Текущая активность» вы можете увидеть список текущих планов и список ранее запущенных планов.
На странице «Мой Bamboo» представлен список планов, включающих изменения, внесенные вашей текущей учетной записью.
Поскольку Bamboo On Demand использует ту же учетную запись, что и JIRA, он отображает список билетов JIRA, назначенных текущему пользователю, и список планов, в которых есть изменения в этих билетах.
Существует также список любимых планов.
Страница плана
Каждый план имеет свою страницу, на которой содержится сводная таблица предыдущих запусков плана (сборок), а также графические данные о соотношении успешных и неудачных сборок.
Страница сборки содержит информацию о продолжительности и успешности сборки и позволяет добавлять комментарии.
Кроме того, в сборку включен список заявок и коммитов JIRA. При нажатии на заявку открывается соответствующая страница JIRA, а при нажатии на фиксацию открывается страница фиксации в Bitbucket (как выяснилось, принадлежащая Atlassian и хорошо интегрированная с другими онлайн-сервисами).
В нашем случае речь идет о Git-коммитах, но поддерживаются и другие популярные системы контроля версий (Subversion, Mercurial).
На той же странице вы можете скачать полный файл журнала, относящийся к сборке, или просмотреть статистику по выполненным автоматическим тестам.
Если сборка в данный момент выполняется, зеленая панель представляет собой шкалу, отображающую текущий ход сборки, а файл журнала обновляется в реальном времени и отображается внизу страницы.
На отдельной странице для ручного скачивания доступны файлы, созданные в ходе выполнения плана (т.н.
артефакты ).
В версии JIRA On Demand на серверах Atlassian хранится до 1 ГБ таких файлов.
Настройка плана
Настройка плана — это серия страниц, на которых можно задать название плана.
.
список используемых репозиториев исходного кода и настройки подключения к ним.
.
способ работы с ветками (ветвями) исходного кода.
Bamboo имеет несколько полезных функций при работе с ветками.
Во-первых, вы можете собирать не только основную ветку (master), но и все остальные ветки репозитория, имена которых удовлетворяют заданному регулярному выражению.
Например, при использовании Git-поток вы можете собрать все ветки, содержащие особенность/ .
Это позволяет вам быть более уверенным в том, что изменения, внесенные в функциональные ветки, не сломают сборку при объединении с основным кодом.
Во-вторых, поддерживается автоматическая синхронизация изменений между основной веткой и функциональной веткой.
Здесь вы можете выбрать одну из двух стратегий: объединить успешно собранные изменения из функциональной ветки обратно в главную ветку ( привратник ) или объединить изменения из основной ветки в функциональные ветки ( Средство обновления филиалов ).
Если в названии ветки содержится название тикета от JIRA, то такая ветка будет автоматически прикреплена к этому тикету для быстрой навигации.
Страница «Триггеры» позволяет настроить условия, при которых план запускается к исполнению.
Например, сборку можно запускать периодически в указанное время и только в том случае, если в репозиторий были отправлены изменения.
Вы можете запускать сборку после завершения фиксации, используя механизм перехвата после фиксации, или только один раз в день, как это делают многие команды.
План в Bamboo состоит из набора этапов ( этап ), каждое из которых может содержать одно или несколько произведений ( работа ), которые в свою очередь состоят из задач ( задача ).
В случае сбоя одного из заданий вы можете перезапустить только это задание, а не весь план.
Кроме того, работы в рамках одного этапа могут выполняться параллельно.
Например, можно создать три этапа — сборка ( строить ), тестирование ( тестирование ) и развертывание ( развертывание ).
На каждом из этих этапов можно скомпилировать, протестировать и развернуть на разных серверах несколько деревьев исходного кода.
Набор встроенных задач не очень велик, но содержит все необходимое для наших нужд. Например, он поддерживает сборку проекта с использованием Ant или Maven, запуск тестов JUnit (или PHPUnit, если вы пишете на PHP), выполнение произвольных сценариев оболочки, развертывание военного файла под Tomcat или Heroku, добавление тегов в систему контроля версий, копирование файлов.
использование SSH и многое другое.
Панель администратора
Панель администратора Bamboo имеет множество опций.
Я не буду описывать такие стандартные возможности, как управление правами доступа пользователей или просмотр лог-файлов.
На мой взгляд, самая важная настройка в Bamboo On Demand — это настройка экземпляров Amazon, используемых для выполнения планов.
Все дело в том, что Atlassian не предоставляет вычислительные мощности своего дата-центра для построения ваших проектов.
Вместо этого Bamboo использует ваш ключ API Amazon Web Services для создания экземпляров виртуальных машин и выполнения планов на этих экземплярах.
В админ-панели мы можем указать ваши данные для работы с AWS API, тип и количество создаваемых экземпляров, используемые образы виртуальных машин (AMI) и тома EBS. При запуске плана Bamboo проверяет, существует ли уже работающий экземпляр, и если нет, создает необходимый экземпляр.
По умолчанию через 300 секунд после завершения выполнения плана и при отсутствии других заданий в очереди экземпляр отключается.
При настройке инстанса имейте в виду, что Amazon On Demand взимает минимальную плату за час, поэтому в целях экономии имеет смысл рассмотреть возможность выбора менее производительного инстанса, если часа достаточно для выполнения всех планов.
Вы также можете использовать снимки томов EBS для хранения относительно недавней версии исходного кода, т.к.
это позволит избежать значительной нагрузки на полосу пропускания, связанной с загрузкой всего дерева исходных текстов каждый раз при выполнении плана (в крупных проектах Git репозиторий Git может быть размером в сотни мегабайт или даже гигабайты).
Интеграция с JIRA
Atlassian Bamboo хорошо интегрирован с JIRA и другими сервисами Atlassian. Если вы включите названия задач JIRA в описания коммитов, вы сможете легко перемещаться между Bamboo и страницами этих задач.
Кроме того, статус выполнения каждого плана отображается на панели состояния JIRA (лента активности).
Заключение
Я не думаю, что Bamboo существенно выделяется по своим возможностям по сравнению с другими популярными системами непрерывной интеграции.Однако его очень удобно использовать с другими облачными сервисами Atlassian благодаря хорошей интеграции и единообразному пользовательскому интерфейсу.
Bamboo можно использовать в облаке или загрузить и установить на один из ваших серверов.
Информацию о ценах можно найти здесь (короче, от 10$ в месяц или 10$ за скачивание и лицензию на 10 разработчиков).
Для небольших проектов цена и временные затраты на поддержку Bamboo On Demand значительно ниже аналогичных затрат на развертывание системы непрерывной интеграции на собственных серверах, а хорошая интеграция с JIRA позволяет повысить производительность, поэтому мы выбрали Bamboo для мы сами.
Примечание
Если кому-то фотографии кажутся слишком маленькими, полный архив можно получить по адресу связь .Теги: #непрерывная интеграция #Системы контроля версий #Управление проектами #Разработка сайтов #программирование #git
-
Дельфины
19 Oct, 24 -
3D-Эффект С Белыми Линиями
19 Oct, 24 -
Заглянем В Будущее Ит На 500 Лет
19 Oct, 24 -
Очередное Закрытие Ненужных Сервисов Google
19 Oct, 24 -
Малыш Асус + Везде Какая-То Реклама Или Еее!
19 Oct, 24