В последнее время разработчики все чаще и чаще обращаются к нам с просьбами реализовать CI в Jelastic. Для чего же нужна непрерывная интеграция? Как правило, в проекте, где над разными частями разработчики трудятся независимо, стадия интеграции является заключительной и довольно трудоемкой, соответственно требует дополнительных затрат времени. Переход к непрерывной интеграции позволяет снизить эту трудоемкость, а так же обнаружить и устранить ошибки заранее, пока они еще не укоренились и не выросли в более серьезную проблему. Да действительно, если осуществлять контроль качества на протяжении всего процесса разработки, можно сэкономить и время, и деньги, и усилия, при одновременном повышении качества. Такой подход особенно полезен для крупных проектов с участием большого количества разработчиков.
Сегодня мы покажем, как можно реализовать непрерывную интеграцию в облаке Jelastic на простом примере с использованием Jenkins.
Пошаговая инструкция:
1. Создайте окружение в Jelastic и разверните в нем Jenkins (или разверните его локально у себя на компьютере). Свое приложение Вы можете развернуть в этом же окружении или создать еще одно отдельно.
2. Теперь нужно немного модифицировать файлы Вашего проекта: settings.xml и pom.xml, чтобы применить Maven плагин для Jelastic.
Пропишите тег profile в файле settings.xml и укажите Ваш логин и пароль к Jelastic dashboard:
<profile>
<id>jelastic</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<jelastic.username>[insert your Jelastic username]</jelastic.username>
<jelastic.password>[insert your Jelastic password]</jelastic.password>
</properties>
</profile>
Теперь добавьте секцию Plugin Repository в pom.xml, укажите путь к репозиторию, в котором хранится Jelastic Maven плагин:
<pluginRepositories>
<pluginRepository>
<id>sonatype-oss-public</id>
<url>https://oss.sonatype.org/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
Так же в pom.xml пропишите секцию plugins, в которую нужно добавить плагин, чтобы автоматически развернуть приложение в созданном ранее окружении:
<plugins>
<!--… -->
<plugin>
<groupId>com.jelastic</groupId>
<artifactId>jelastic-maven-plugin</artifactId>
<version>1.7-SNAPSHOT</version>
<configuration>
<email>${jelastic.username}</email>
<password>${jelastic.password}</password>
<context><!--insert your context path or ROOT for default--></context>
<environment><!--insert your environment name--></environment>
<api_hoster><!--default value «api.jelastic.com»--></api_hoster>
</configuration>
</plugin>
<!--… -->
</plugins>
В теге <api_hoster> укажите соответсвующий API хостера.
3. Откройте Jenkins и браузере и установите Maven автоматически.
4. Создайте новый проект.
5. На странице Configuration в секции Source Code Management выберите Subversion и введите URL к Вашему репозиторию.
Так же Вы можете опрашивать Вашу систему на наличие изменений через определенный период времени. Для этого заполните соответствующее поле.
6. В секции Build укажите Root pom (pom.xml). В поле Goals and Options введите следующую строку:
clean install jelastic:deploy
Это позволит задеплоить ваше приложение в Jelastic автоматически.
Ну вот и все! Теперь достаточно кликнуть Build now и Ваш проект будет автоматически собран и развернут в облаке. А Jenkins будет опрашивать систему на внесенные изменения согласно указанному Вами периоду времени.
Будем очень благодарны за фидбэк и предложения по улучшению данного функционала.
Автор: jelastic