Android
Jenkins

Jenkinsビルド設定 for Android

はじめに

Githubで管理しているAndroidプロジェクトをJenkinsで自動ビルドしてDeployGateにアップロードしてみようの巻

こちらでJenkinsのインストールが完了していることが前提。

新規ジョブの作成

a.png
「新規ジョブ作成」を選択。

スクリーンショット 2017-07-31 0.48.34.png
任意の名前を入力し、「フリースタイル・プロジェクトのビルド」を選択して、「OK」

設定詳細

デフォルト設定からいじるところは以下。設定項目はお好みで。

General

プロジェクト名:任意
古いビルドの破棄:チェックオン
  ビルドの保存日数:任意
  ビルドの保存最大数:任意
ビルドを並行実行:チェックオン

ソースコード管理

Gitを選択
リポジトリURL:対象リポジトリのURL
認証情報:追加を選択。ダイアログからGithubのユーザー名/パスワードを入力して、選択。
ビルドするブランチ:任意

ビルド・トリガ

SCMをポーリング:チェックオン
 スケジュール:crontabと同じ書式やで。ここでは「H/15 * * * *」としました。これで15分毎に実行されます。

ビルド環境

コンソール出力にタイムスタンプを追加する:チェックオン

ビルド

ビルド手順の追加→シェルの実行でシェルスクリプトに以下を。
今回はプロジェクト直下にgradlewがある想定ですが、パスは環境に応じて変えてくださいねー。

./gradlew build

ビルド後の処理

・成果物の保存
 ビルド後の処理の追加→成果物を保存を選択
 保存するファイル:**/app-debug.apk
 高度な設定
  ビルドが成功した場合のみ保存:チェックオン

・Upload to DeployGate
 ビルド後の処理の追加→Upload to DeployGateを選択し、API KeyとUsernameを入力。

最後のApplyして保存して終了でございます。
あとはビルドすればおk。

番外編

初回ビルド時に以下のエラーが出ることがあります。

You have not accepted the license agreements of the following SDK components:
[ConstraintLayout for Android 1.0.2, Solver for ConstraintLayout 1.0.2].
Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager.

おもむろに以下を実行しておきましょう。
それでもだめだったらAndroid Studioからがんばりましょう。

$ mkdir "$ANDROID_HOME/licenses" || true
$ echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license"
$ echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license"

株式会社Arrvis