はじめに
Githubで管理しているAndroidプロジェクトをJenkinsで自動ビルドしてDeployGateにアップロードしてみようの巻
こちらでJenkinsのインストールが完了していることが前提。
新規ジョブの作成
「新規ジョブ作成」を選択。 任意の名前を入力し、「フリースタイル・プロジェクトのビルド」を選択して、「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"