JenkinsでAndroidアプリを構築する方法
この記事では、JenkinsがAndroidアプリをビルドするようにセットアップします。 Jenkinsはすでにインストールされている必要があるため、まだインストールされていない場合は、最初にこちらの手順に従ってください。 この記事では、プロジェクトでGitやSubversionなどのバージョン管理を使用していると仮定します。 Gradleと呼ばれる新しいビルドシステムについて主に説明しますが、この記事はAntビルドのセットアップにも使用できます。
必要なソフトウェアのインストール
まず、AndroidSDKをインストールする必要があります。 ダウンロード場所を見つけるには、AndroidSDKダウンロードページにアクセスしてください。 次に、他のプラットフォームの場合は[ダウンロード]をクリックし、Linuxバージョンのリンクをコピーします(SDKツールのみ)。
リンクをコピーしたら、SSHセッションに切り替えます。 CDを/optに挿入し、AndroidSDKをダウンロードします。
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を使用する場合は、Gitもインストールしてください。
sudo apt-get install git-core
AndroidSDKの構成
プロジェクトをビルドするには、AndroidSDKにいくつかのパッケージが必要です。 まず、SDK自体を更新します(いくつかのライセンスを受け入れる必要があります)。
android update sdk --no-ui
これにより、すべての Androidバージョンがインストールされるため、かなり時間がかかります。 すべてのパッケージをインストールしたくない場合は、詳細をお読みください。
特定のパーツのみをインストールする場合は、SDKの更新に関する詳細情報が thisStackOverflowの質問にあります。
必要になる可能性が最も高いパッケージは、次のコマンドでインストールされます(android-19
の「19」を最新のAndroidSDKバージョンに置き換えます。
android update sdk -u --filter platform-tools,android-19
ただし、これではGradleに必要なビルドツールはインストールされません。 そのためには、次のコマンドを実行します。
android list sdk --all
このリストで、AndroidSDKBuild-toolsバージョンxx.xx.xxという最初のアイテムを見つけます。 アイテムの前にリストされている番号を覚えて、以下を実行します。
android update sdk -u --all --filter <number>
AndroidサポートリポジトリとAndroidサポートライブラリについてもこれを行います。
プロジェクトで特定のバージョンのビルドツールを使用することがわかっている場合は、リストでそのアイテムを探します。 これは、build.gradleファイルでbuildToolsVersionとして確認できます。
android {
buildToolsVersion "18.1.1"
compileSdkVersion 18
}
また、build.gradleにcompileSdkVersionとして表示される適切なプラットフォームバージョンをインストールします。
ここで、JenkinsがAndroid SDKにアクセスできるようにするには、次のコマンドを実行します。
sudo chmod -R 755 /opt/android-sdk-linux
また、64ビットOSを使用している場合は、32ビットライブラリをインストールします。
sudo apt-get install ia32-libs
次に、ドロップレットを再起動します。
sudo shutdown -r now
Androidプロジェクトの構成
プロジェクトがまだEclipseでビルドされている場合は、ビルドスクリプトを作成する必要があります。 最も簡単なオプションは、Eclipseから直接これを行うことです。[ファイル]-> [エクスポート]に移動し、[Android]->[Gradleビルドファイルの生成]を選択します。 次に、プロジェクトを選択して、[完了]をクリックします。 これにより、JenkinsでビルドできるGradleプロジェクトが作成されます。
Gradleを使用したくない場合でも、ApacheAntを使用できます。 これが何であるかわからない場合、またはGradleプロジェクトのエクスポートが失敗した場合は、この手順をスキップできます。 必要な唯一の手順は、AndroidSDKがインストールされているPCで次のコマンドを実行することです。
android update project -p .
Jenkinsの構成
Jenkinsも構成する必要があります。 まず、JDKをインストールする必要があります。 これを行うには、[Jenkinsの管理]->[システムの構成]にアクセスします。 次に、JDKを見つけて、「JDKの追加」をクリックします。 Oracleアカウントが必要です。 クレデンシャルを入力するには、[JDK]セクションにユーザー名/パスワードを入力してくださいをクリックします。 お持ちでない場合は、次の画面のリンクをたどってください。 それらを入力したら、JDK構成に戻ります。 名前を入力してください–Javaバージョンにちなんで名前を付けることをお勧めします。 次に、[自動インストール]をオンにして、最新のJavaSE開発キットのバージョンを選択します。 これにより、後でJDKがインストールされます。
Antを使用している場合は、Antセクションで同じ手順を実行します。
次に、[Jenkinsの管理]->[プラグインの管理]->[利用可能]にアクセスします。 次のプラグインを確認し、再起動せずにインストールをクリックします。
-
Gradleプラグイン(Antを使用している場合は不要)
-
Gitプラグイン(Gitを使用している場合)
-
Androidエミュレータプラグイン(エミュレータを使用する場合)
これにより、他のいくつかのプラグインが自動的にインストールされます。 Gradleを使用する場合は、JDKと同じ手順を実行してGradleを自動的にインストールします。 これを書いている時点では、Gradle0.9が必要です。 Gradleラッパーを使用している場合、これは必要ありません。 プロジェクトにgradlewファイルがあり、ソース管理にチェックインされています。
ジョブの設定
これで、ジョブをセットアップできます。 [新しいジョブ]をクリックして名前を付け、[フリースタイルソフトウェアプロジェクトの構築]を選択します。 次に、[OK]をクリックします。 [ソースコード管理]セクションで、プロジェクトで使用しているバージョン管理システムを選択し、情報を提供します。 次に、[ビルド]セクションで、Gradleを使用している場合はInvoke Gradleスクリプトを追加し、Antを使用している場合はInvokeAntを追加します。 すべてのパラメータを入力します。 Gradleの場合、これが最も可能性の高いパラメーターになります。
そしてAntの場合、これらは次のとおりです。
これでプロジェクトがビルドされますが、APKファイルはまだ保存されません。 これを構成するには、アーティファクトのアーカイブと呼ばれるビルド後のアクションを追加します。 アーカイブするファイルの場合は、**/*.apk
と入力します。
[保存]をクリックすると、建物が始まります。 [今すぐビルド]をクリックします。 JDKがインストールされ、しばらくするとビルドが完了します。 プロジェクトのページには、LastSuccessArtifactsという見出しがあります。 ここに、生成されたすべてのAPKファイルが表示されます。
もっと何か?
最初のAndroidプロジェクトは、Jenkinsインスタンス上に構築されています。 おめでとう!
Jenkinsインスタンスは複数のジョブを保持できるため、より多くのAndroidアプリを作成し、開発してください。
Gradleはアプリに自動的に署名することもできますが、この機密情報はbuild.gradleファイルに保存する必要があります。これはお勧めしません。 これは、Jenkinsと組み合わせて使用できる完全なbuild.gradleの例です。
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'
}