Разработка приложений Android при помощи Jenkins

Данное руководство покажет, как настроить Jenkins для разработки приложений Android.

Примечание: Необходимо предварительно установить Jenkins (инструкции по установке можно найти здесь). Также для разработки приложения понадобится система контроля версий (например, Git или Subversion).

Установка программ

Для начала нужно установить Android SDK (англ. software development kit – комплект средств разработки программного обеспечения). Посетите страницу загрузки Android SDK. Затем кликните Download for other platforms и скопируйте ссылку на версию для Linux.

Скопировав ссылку, вернитесь в сессию SSH, откройте каталог /opt и загрузите Android SDK:

cd /opt
wget <link you copied here>

На момент написания статьи команда для загрузки актуальной версии имеет такой вид:

wget http://dl.google.com/android/android-sdk_r22.3-linux.tgz

Затем распакуйте файл.

tar zxvf <filename of the just downloaded file>

После этого удалите только что загруженный файл.

rm <filename of the just downloaded file>

Теперь нужно установить переменные окружения. Откройте файл /etc/profile.d/android.sh для редактирования:

nano /etc/profile.d/android.sh

И внесите в него следующее:

export ANDROID_HOME="/opt/android-sdk-linux"
export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH"

Затем обновите файл:

source /etc/profile

На данном этапе можно также установить Git:

sudo apt-get install git-core

Настройка Android SDK

Для разработки проекта Android SDK потребует несколько пакетов. Для начала обновите SDK (нужно принять условия нескольких лицензий):

android update sdk --no-ui

Эта команда установит все версии Android, потому её выполнение займёт немало времени.

Примечание: Если нужно установить только определённые пакеты, читайте это руководство.

Самые необходимые пакеты можно установить при помощи команды (замените 19 номером последней версии):

android update sdk -u --filter platform-tools,android-19

Однако эта команда не установит пакетов, необходимых для Gradle. Для этого используйте:

android list sdk --all

В этом списке найдите Android SDK Build-tools, version xx.xx.xx. Запомните номер пакета и выполните следующую команду:

android update sdk -u --all --filter <number>

Повторите команду для Android Support Repository и Android Support Library.

Если вы знаете, какая именно версия инструментов разработки вам нужна, найдите её в списке (версии указаны как buildToolsVersion в файле build.gradle)

android {
buildToolsVersion "18.1.1"
compileSdkVersion 18
}

Кроме того, нужно установить соответствующую платформу (compileSdkVersion в файле build.gradle).

Теперь нужно открыть доступ Jenkins к инструментам Android SDK:

sudo chmod -R 755 /opt/android-sdk-linux

В 64-битной системе нужно установить 32-битные библиотеки:

sudo apt-get install ia32-libs

Перезапустите сервер:

sudo shutdown -r now

Настройка проекта Android

Если проект собран в Eclipse, нужно создать скрипт сборки. Проще всего это сделать в Eclipse (File -> Export, а затем Android -> Generate Gradle build files, укажите проект и кликните Finish). Это создаст проект Gradle для сборки при помощи Jenkins.

Вместо Gradle можно использовать Apache Ant.

Выполните следующую команду на машине, на которой установлен Android SDK:

android update project -p .

Настройка Jenkins

Теперь нужно настроить Jenkins. Для начала установите JDK; для этого откройте Manage Jenkins -> Configure System, найдите JDK и кликните Add JDK. Для этого понадобится учётная запись Oracle. Щёлкните Please enter your username/password в разделе JDK и укажите свои учётные данные. Если такого аккаунта ещё нет, перейдите по ссылке в следующем окне. Затем вернитесь к настройкам JDK. Введите имя (рекомендуется в качестве имени указать версию Java), кликните Install automatically и выберите наиболее актуальную версию Java SE Development Kit. После этого JDK будет установлен.

Примечание: Все эти инструкции действительны для Ant.

Затем откройте Manage Jenkins -> Manage Plugins -> Available. Проверьте следующие плагины и кликните Install without restart:

  • Gradle Plugin (не нужен при использовании Ant)
  • Git Plugin (необходим при использовании Git)
  • Android Emulator Plugin (эмулятор)

Это автоматически установит несколько других плагинов.

Чтобы использовать Gradle, выполните все перечисленные выше действия, чтобы установить Gradle автоматически (на момент написания статьи понадобится Gradle 0.9). В этом нет необходимости, если проект использует файл gradlew.

Настройка Job

Теперь можно создать Job. Для этого кликните New Job, выберите имя и нажмите Build a free-style software project и OK. В разделе Source Code Management укажите систему контроля версий, которая используется в проекте, и предоставьте все данные о ней. В разделе Build выберите скрипт Invoke Gradle при использовании Gradle или же Invoke Ant при использовании Ant. Установите все параметры. Для Gradle это:

Gradle version 0.9

Tasks   clean build

Для Ant:
Ant version: Default
Targets: clean build

Это соберет проект, но файлы APK не будут сохранены. Чтобы выполнить это, нужно добавить задачу Post-build под названием Archive the artifacts для файлов **/*.apk.

Нажмите Save, после чего можно начинать сборку. Нажмите Build now. После сборки на странице проекта будет заголовок Last Successful Artifacts, в котором будут находиться все созданные файлы APK.

Готово! Это первый проект Android, разработанный в Jenkins.

Jenkins может поддерживать более одного проекта; для этого нужно создать job и разработать новые проекты Android.

Gradle может автоматически подписывать приложения, но для этого в файле build.gradle должна храниться конфиденциальная информация, что не рекомендуется. Вот пример файла build.gradle, который можно использовать в сочетании с Jenkins:

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.7.+'
}
}
apply plugin: 'android'

repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
android {
compileSdkVersion 19
buildToolsVersion '19.0.1'
signingConfigs {
release {
storeFile file("keystores/release.keystore")
storePassword "your-keystore-password"
keyAlias "your-alias"
keyPassword "your-alias-password"
}
}
buildTypes {
release {
zipAlign true
signingConfig signingConfigs.release
}
debug {
zipAlign true
}
}
}

dependencies {
compile 'com.android.support:appcompat-v7:19.0.0'
compile 'com.android.support:support-v4:19.0.0'
}

Tags: , , , , , , , ,

Добавить комментарий