Непрерывная интеграция в облаке

в 13:18, , рубрики: continuous integration, java, jelastic, Jenkins, maven, paas, platform as a service, plugin, repository, subversion, tomcat, Блог компании Jelastic, Облачные вычисления, платформа как услуга, метки: , , , , , , , , , , ,

Непрерывная интеграция в облакеВ последнее время разработчики все чаще и чаще обращаются к нам с просьбами реализовать 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 автоматически.

image

4. Создайте новый проект.

5. На странице Configuration в секции Source Code Management выберите Subversion и введите URL к Вашему репозиторию.
Так же Вы можете опрашивать Вашу систему на наличие изменений через определенный период времени. Для этого заполните соответствующее поле.

6. В секции Build укажите Root pom (pom.xml). В поле Goals and Options введите следующую строку:

clean install jelastic:deploy

Это позволит задеплоить ваше приложение в Jelastic автоматически.

image

Ну вот и все! Теперь достаточно кликнуть Build now и Ваш проект будет автоматически собран и развернут в облаке. А Jenkins будет опрашивать систему на внесенные изменения согласно указанному Вами периоду времени.

Будем очень благодарны за фидбэк и предложения по улучшению данного функционала.

Автор: jelastic

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js