[Android Studio] Jenkins を Mac にインストールして Gradle ベースのプロジェクトをビルドする

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

Android Studio ではビルドシステムに Gradle を採用しています。これを Jenkins で CI するときにはどうやってビルドするんだろう、と調べてみたらとっても簡単でした。Jenkins の導入から Android Studio で作成したプロジェクトを Gradle でビルドするところまでをメモとして残しておきたいと思います。

Jenkins のインストール

まず Jenkins のインストールです。Homebrew を使います。

brew install jenkins

==> Downloading http://mirrors.jenkins-ci.org/war/1.500/jenkins.war
######################################################################## 100.0%
==> Caveats
To have launchd start jenkins at login:
    ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
Then to load jenkins now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
Or, if you don't want/need launchctl, you can just run:
    java -jar /usr/local/opt/jenkins/libexec/jenkins.war
==> Summary
  /usr/local/Cellar/jenkins/1.500: 3 files, 47M, built in 50 seconds
  
cp /usr/local/Cellar/jenkins/1.477/homebrew.mxcl.jenkins.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

これで http://localhost:8080 にアクセスすると Jenkins のページが表示されるようになると思います。

ちなみに社内サーバーにインストールしてアクセスしたい場合、 ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist--httpListenAddress が設定されていないか確認しておくようにしましょう。以下のようになっている場合は 127.0.0.1 からしかアクセスできないようになっているので削除する必要があります。

<string>--httpListenAddress=127.0.0.1</string>

また今回立てた Jenkins は Android プロジェクト用なので Jenkins の設定画面で環境変数に ANDROID_HOME を追加しておきましょう。

jenkins_gradle01

新規ジョブの作成

次に新規ジョブを作成し、いろいろ設定します。まずは「新規ジョブ作成」をクリック。

jenkins_gradle02

「ジョブ名」を入力し「フリースタイル・プロジェクトのビルド」を選択します。

jenkins_gradle03

次に詳細設定画面が表示されます。「ソースコード管理システム」にソースコードを置いている場所を設定します。

jenkins_gradle04

次に「ビルド」で「シェルの実行」を選択し ./gradlew build を追加します。これでプロジェクト内にある gradlew のコマンドを使ってビルドを実行してくれます。

jenkins_gradle05

最後に「ビルド後の処理」の「成果物の保存」を選択し、apk を保存する場所を選択します。今回は適当に **/*.apk としました。

jenkins_gradle06

ここまでできたら「保存」をクリックしてジョブの設定を完了します。ビルドを実行すると無事に成功すると思います!

jenkins_gradle07

ビルドした apk もちゃんと保存されていますね!(この設定だと ~/.jenkins/jobs/sample/builds の中にできます)

jenkins_gradle08

まとめ

今回は Jenkins はほんの触りだけ、Gradle のビルドもほんの触りだけやってみました。 gradlew にはいろいろコマンドがあるようなので (./gradlew tasks で見れます) ビルドコマンドとあわせて使うといい感じに CI できると思います!

参考