Статьи

Автоматизация непрерывной интеграции проектов Android с Gradle с помощью Jenkins в Windows

В этом посте будет показано, как автоматизировать процесс развертывания приложения Android с помощью Jenkins Continuous Integration — для создания проекта, запуска модульных тестов (если таковые имеются), архивации встроенных артефактов и запуска отчетов Android lint.

1. Установите Jenkins в качестве службы Windows

Перейдите на веб-сайт jenkins-ci.org с помощью интернет-браузера и загрузите собственный пакет Windows (ссылка подчеркнута для упрощения идентификации), как показано на правой боковой панели вкладки «Загрузить Jenkins».

Дженкинс установка

После завершения загрузки разархивируйте zip-файл и щелкните файл jenkins-1.xxx.msi. Выполните шаги по настройке, чтобы установить Jenkins как службу Windows.

2. Изменить порт Jenkins по умолчанию

По умолчанию Jenkins работает на порте 8080. Чтобы избежать конфликта с другими приложениями, порт по умолчанию можно изменить, отредактировав файл jenkins.xml, находящийся в C: \ Program Files (x86) \ Jenkins location. Как показано ниже, измените httpPort на 8082.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
<service>
  <id>jenkins</id>
  <name>Jenkins</name>
  <description>This service runs Jenkins continuous integration system.</description>
  <env name="JENKINS_HOME" value="%BASE%"/>
  <!--
    if you'd like to run Jenkins with a specific version of Java, specify a full path to java.exe.
    The following value assumes that you have java in your PATH.
  -->
  <executable>%BASE%\jre\bin\java</executable>
  <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8082</arguments>
  <!--
    interactive flag causes the empty black Java window to be displayed.
    I'm still debugging this.
  <interactive />
  -->
  <logmode>rotate</logmode>
 
  <onfailure action="restart" />
</service>

Как только изменение будет сохранено в файле jenkins.xml, перезапустите службу Jenkins из диспетчера задач Windows -> Службы, щелкните правой кнопкой мыши службу Jenkins и выберите «Остановить службу», чтобы остановить службу, как показано ниже.

Дженкинс-стоп

Как только статус службы изменится на остановленный, перезапустите службу, щелкнув правой кнопкой мыши службу Jenkins и выберите «Запустить службу», чтобы снова запустить службу.

Дженкинс-перезагрузка

Перейдите к localhost: 8082, чтобы проверить, был ли перезапуск Jenkins успешным, как показано ниже — будет отображаться панель управления Jenkins. Обратите внимание, что требуется некоторое время, прежде чем сервис Jenkins станет доступным.

Дженкинс-панель

3. Установите плагины

На панели управления Jenkins перейдите к разделу «Управление Jenkins -> Управление плагинами», как показано на снимке ниже.

Дженкинс-manageplugins

Установите следующие плагины и перезапустите Jenkins, чтобы изменения вступили в силу.

  • Git Plugin (для интеграции Git с Jenkins)
  • Gradle Plugin (для интеграции Gradle с Дженкинсом)
  • Android Lint Plugin (для интеграции Lint с Дженкинсом)

4. Настройте систему

На панели управления Jenkins перейдите к разделу «Управление Jenkins -> Настройка системы», как показано на снимке ниже.

Дженкинс-configuresystem

Перейдите в раздел «Глобальные свойства» и нажмите «Добавить», чтобы добавить переменную среды ANDROID_HOME, как показано на снимке ниже. Введите имя как ANDROID_HOME и введите путь к папке, в которой Android SDK хранится в Windows.

androidhome

Перейдите в раздел JDK и нажмите «Добавить JDK», чтобы добавить установку JDK, как показано на снимке ниже. Укажите имя JDK, выберите версию JDK для установки и следуйте инструкциям на экране, чтобы сохранить учетные данные для входа в Oracle. Сохраните изменения.

Дженкинс-ява

Затем перейдите к разделу Git и нажмите «Добавить Git», чтобы добавить установку Git, как показано на снимке ниже. Укажите Git Name, укажите путь к исполняемому файлу Git и сохраните изменения.

Дженкинс-gitinstall

Затем перейдите к разделу Gradle и нажмите «Добавить Gradle», чтобы добавить установку Gradle, как показано на снимке ниже. Укажите имя Gradle, выберите подходящую версию (на момент написания я использовал Gradle 1.10) и сохраните изменения.

gradleinstall

Затем перейдите к разделу «Уведомление по электронной почте» и введите сведения о SMTP-сервере, как показано ниже. Нажмите кнопку «Дополнительно», чтобы добавить необходимые дополнительные сведения и сохранить изменения. Нажмите «Тестовая конфигурация путем отправки тестового электронного письма», введите получателя тестового электронного письма и нажмите «Тестовая конфигурация», чтобы увидеть, успешно ли отправлено электронное письмо.

Дженкинс-почта

5. Создать новую работу Дженкинс

На панели инструментов Jenkins нажмите «Новая работа», чтобы создать новую работу. Введите имя для работы и выберите «Создать проект программного обеспечения в свободном стиле» в качестве опции и нажмите OK, как показано ниже.

Android-newjob

На экране «Конфигурация нового задания» перейдите к разделу «Управление исходным кодом». Сохраните учетные данные Git, нажав «Добавить», как показано ниже, и введите данные в следующем диалоговом окне. Сохраните изменения, нажав «Добавить», как показано ниже.

Android-надстройка учетных данных

Укажите URL-адрес хранилища Git для проекта, выберите сохраненные учетные данные в раскрывающемся списке, как показано на снимке ниже. Сохраните изменения.

Android-sourcecodemgmt

Затем в разделе «Построение триггеров» выберите нужные параметры, как показано ниже, и сохраните изменения.

Android-сборка-триггера

Перейдите в раздел Build, выберите «Invoke Gradle script» из выпадающего списка вариантов «Add step build». Выберите соответствующую версию Gradle, которая настроена, введите задачи для сборки и выберите нужные параметры. Сохраните изменения.

Android-сборки

Перейдите к разделу Действия после сборки, нажмите «Опубликовать результаты Android Lint» в раскрывающемся списке вариантов «Добавить действие после сборки» и укажите место, где результаты Lint должны храниться в рабочей области Jenkins для работа.

Аналогичным образом, нажмите «Архивировать артефакты» в раскрывающемся списке вариантов «Добавить действие после сборки» и укажите формат файлов APK, которые будут архивироваться после каждой сборки. Кроме того, для экономии места на диске можно включить параметры из раздела «Дополнительно», такие как «Отменить все, кроме последнего успешного / стабильного артефакта для экономии места на диске».

Нажмите «Уведомление по электронной почте» в раскрывающемся списке вариантов «Добавить действие после сборки» и введите значения для получателей электронной почты, как показано ниже. Сохраните изменения.

Android-после сборки

6. Построить сейчас

После завершения вышеуказанных шагов настройки нажмите «Build Now» под Jenkins -> Build Android Application (или соответствующим именем задания), чтобы построить проект на основе конфигурации.

Вывод на консоль содержит подробные журналы того, какие шаги были инициированы конфигурацией и результатом всей сборки. Нажатие на любой успешный результат сборки показывает артефакты, которые были заархивированы как часть сборки, изменения, которые начали сборку, и результаты lint, как показано ниже.

Android-строительство-результат

Таким образом, весь процесс создания проекта приложения Android при каждом изменении SCM или при другом условии, запуск отчетов lint, архивация созданных артефактов, публикация отчетов lint и запуск электронных писем получателям могут быть автоматизированы одним нажатием кнопки. через Дженкинс.