新機能:この一連の4つの投稿のすべての情報を含む新しいebook:Jenkins Starter Guide ダウンロードするには、私たちのリソースページに上に頭。
このシリーズの最初の投稿を見逃した場合、またはJenkinsまたはCIが何であるかわからない場合は、戻って読んでください:Jenkinsとは何ですか、なぜそれを使
これは、AndroidアプリをビルドしてテストするためのJenkinsの設定方法のステップバイステップガイドです。 このデモでは、AndroidでBugfender SDKを使用したサンプルアプリケーションを使用します。 あなたは明らかにあなた自身の構築されたAndroidアプリケーションやライブラリを使用したいと思うでしょう。 Jenkinsに独自のAndroidプロジェクトを追加する手順は同じです。
iOSアプリの構築? すぐに来るこのシリーズの次の記事のために目を離さない。
まず、Androidアプリケーションをコンパイルして実行するためのマシンを準備する必要があります。 Jenkinsをまだインストールしていない場合は、前の投稿の手順に従ってJenkinsをサーバーにインストールできます。ステップ1:Java JDKのインストール
sudo apt-get install java-8-openjdk
ステップ2:Android SDKのインストール
https://developer.android.com/studio/index.html#downloadsに移動し、コマンドラインツール>Linuxのみを取得するための表にリストされているリ 何もダウンロードしないで、リンクをコピーするだけです。
sudo apt-get install unzip# here you paste the link you grabbed in the developer.android.com sitesudo -iu jenkins wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zipsudo -iu jenkins mkdir android-sdksudo -iu jenkins unzip sdk-tools-linux-3859397.zip -d android-sdk# this step is important to accept the Android SDK licenseyes |sudo -iu jenkins android-sdk/tools/bin/sdkmanager --licenses
スーパーヒーローになる
バグをかわし、ユーザーを安全に保ちます。
今日は無料でBugfenderを使用してください
ステップ3: Jenkinsの設定
次に、Jenkinsにログインし、インストールしたAndroid SDKを設定します。
ブラウザでhttps://your-ci-server-name.com
を開きます。 あなたはこのようなものが表示されます:
- Jenkinsの管理に移動します>システムの設定
- 「環境変数」にチェックを入れます
- 名前を追加します:ANDROID_HOME
- 値を追加します:/var/lib/jenkins/android-sdk
- 「適用」をクリッ”
ステップ4:Androidジョブを作成する
次に、ホームページに戻ります。 新しい項目をクリックします。 プロジェクト名を入力し、”Freestyle project”を選択します。”
ステップ5:Jenkinsへのコードのダウンロード
次に、jenkinsがコードをダウンロードできるように、リポジトリへのリンクを追加する必要があります。 ソースコード管理セクションでリポジトリのGit URLを指定します。 前述のように、このサンプルリポジトリhttps://github.com/bugfender/BugfenderSDK-android-sample.gitを使用します。
MercurialまたはSubversionリポジトリを持っている場合、それらはまったく同じように動作します。 プライベートリポジトリがある場合は、gitプロトコルを使用してリポジトリにアクセスするためのSSHキーを作成することもできます。
ステップ6:Jenkinsビルドトリガーの設定
プロジェクトを自動的にビルドするビルドトリガーを指定することもできます。 誰かがリポジトリにコードをプッシュしたときにビルドを自動的にトリガーするには、フックを使用するのが最善です。
BitBucket、Gitlab、およびほとんどのGitプロバイダーでは、「Trigger builds remotely」オプションを使用できます。 これにより、ビルドを自動的に開始するためにプロバイダでwebhookとして設定できるURLが提供されます。GitHubユーザーの場合、最も簡単なのは「GitHub plugin」(Jenkinsの管理>プラグインの管理)を見つけてインストールすることで、GitHub固有のオプションが表示されます。 これにより、webhookがインストールされます。ステップ7:ビルド
Jenkinsでソースコードを取得したら、ビルドします。 プロジェクトにGradleラッパーがある場合は、それを使用する必要があります。 ここでは、次のようにInvoke Gradle scriptビルドステップを作成します:
Antベースのプロジェクトがある場合は、Invoke Antビルドステップもあり、柔軟性を最大限に高めるために、Execute shell buildステップを使用できます。
「保存」
を押してビルドをテストするだけです。 最初のAndroidプロジェクトがJenkinsに追加されました。 今度は、Gradleを加速し、Jenkinsで自動テストを設定することを検討することをお勧めします。
無料で今より速くバグの修正を開始
Bugfenderは、モバイルアプリのための最高のリモートロガーです。
Gradleの高速化(オプション)
Gradleに基づいてビルドを実行している場合は、gradleをデーモンとして実行することでビルド時間を節約できます。 それを実行するには、次の操作を行います:
mkdir -p /var/lib/jenkins/.gradleecho org.gradle.daemon=true | sudo -iu jenkins tee -a /var/lib/jenkins/.gradle/gradle.properties
単体テストの実行
単体テストを実行する場合は、次のようにtest Gradleタスクを使用して別のビルドステップを追加することで実行できます:
統合テストの実行
UIテストを設定するには、エミュレータを実行する必要があります。 JenkinsにはAndroid Emulatorプラグインがありますが、更新されておらず、Android SDKの最新バージョンでは動作しなくなっていることがわかりました。 推奨される回避策は次のとおりです。
ステップ1:エミュレータをダウンロードします。 使用可能なSdkを一覧表示するには、次のコマンドを実行します:
sudo -iu jenkins android-sdk/tools/bin/sdkmanager --list --verbose
適切な画像を選択する際の簡単な注意:x86ベースの画像は高速に実行されますが、ハードウェアアクセラレーションも必要です。 サーバーでKVMアクセラレーション(sudo modprobe kvm)を有効にする必要があり、サーバーを仮想マシンにすることはできません。 このため、ARMイメージを選択していますが、実行は遅くなりますが動作します。ステップ2:私たちの場合、Android SDKレベル25でアプリケーションを実行しようとしているので、system-images;android-25;google_apis;armeabi-v7aが適しているようです。:
sudo -iu jenkins android-sdk/tools/bin/sdkmanager 'system-images;android-25;google_apis;armeabi-v7a'
ステップ3:インストールしたら、Android仮想デバイス(エミュレータインスタンス)を作成します:
echo no | $ANDROID_SDK_ROOT/tools/bin/avdmanager -v create avd --force --package 'system-images;android-25;google_apis;armeabi-v7a' --name Android25 --tag google_apis --abi armeabi-v7a
ステップ4:次に、Supervisordを使用して、常にバックグラウンドでandroidエミュレータをシステムサービスとして実行します。 それをインストールするには:
sudo apt-get install supervisor
次に、/etc/supervisor/conf.d/emulator.conf
で構成ファイルを作成します:ステップ5:これが完了したら、supervisordを再起動して変更を適用します:
sudo service supervisor restart
エミュレータはバックグラウンドで起動する必要があります。 それは1-2分かかるかもしれません。 準備ができたら、エミュレータデバイスがデバイスリストに表示されます:
sudo -iu jenkins android-sdk/platform-tools/adb devices
ステップ6:Jenkinsジョブで、次のようなシェルビルドの実行ステップを追加します:
コード:
ANDROID_SERIAL=emulator-5556# wait for emulator to be up and fully booted, unlock screen$ANDROID_HOME/platform-tools/adb wait-for-device shell 'while ]; do sleep 1; done; input keyevent 82'./gradlew connectedAndroidTest
次の手順
Androidエミュレータの実行、アプリケーションのインストール、さまざまなテストの実行など、さらに多くのオプションがあります。
また、あなたが遊ぶことができるいくつかの本当に興味深いプラグインがあります:
- Android Emulator Plugin-現時点では、このプラグインは最新のAndroid SDKで正常に動作していません。 しかし、私たちの最善の推測は、彼らがそれを修正し、すぐに再び動作するということです。 別の方法として、古いSDKバージョンを使用することもできます。
- Android Signing Plugin
- Google Play Android Publisher Plugin
このシリーズのより多くの投稿については、チェックアウトしてください:
- Jenkinsとは何ですか、なぜあなたはそれを使うべきですか?
- UbuntuにJenkinsをインストールする方法
- 最初のiOSジョブをJenkinsに追加する方法