Jenkins CI 上で Gradle を利用する最も簡単な方法

Gradle にも大分慣れてきたし、そろそろ 実際にプロジェクトで使えるように準備しないと...
まずは Jenkins CI で Gradle が利用できるように準備しようかな。
今時のプロジェクトでは Jenkins CI ぐらい当たり前ですよね。
と言うことで、今回は Jenkins CI で Gradle する最も簡単な (と思われる) 方法です。

実は Jenkins CI で Gradle を利用するために 必要な準備なんて何もありません。

でも紹介した 『Gradle Wrapper』 さえ使えば、一般的なジョブの設定をするだけでいいんです。
もし、Jenkins CI 上で環境構成を変更する必要があるのであれば あたりを参考に Gradle ファイルを設定しましょう。

今回は GitHub からプロジェクトをチェックアウト (clone) してビルドしますので、 あらかじめ Jenkins CI には Git を利用するための環境が整っていることを前提としています。
既に稼働中の Jenkins CI なら もちろん Git の環境は整っていますよね...

では、早速プロジェクトを生成してビルドしてみることに...

ジョブの作成

メニューから 『新規ジョブ作成』をクリックしてジョブを作成します。
ジョブ名に任意の名称 (今回は gradle-jenkins-sample としました)を入力し、『フリースタイル・プロジェクトのビルド』 を選択して [OK] ボタンをクリックします。


Git の設定

ソースコード管理システム から Git を選択して

のように各プロジェクトのリポジトリの情報を入力します。


ビルド の設定

ビルドの 『ビルド手順の追加』から シェルの実行 (Windows であれば Windowsバッチコマンドの実行) を選択します。 追加された シェルスクリプト (Windows であれば コマンド) 入力欄に

./gradlew -q
と入力して保存します。


デフォルトタスク以外を実行する場合は

./gradlew -q clean something build
のようにタスクを指定しても良いのですが、 gradle/ci.gradle ファイルを作成して
defaultTasks 'clean', 'something', 'build'
のように設定した方が
./gradlew -q -Penv=ci
と言った感じで簡単に実行できるのでとっても便利です。
もちろん、Gradle ファイルに変更が入っても Jenkins CI の設定は何も変える必要はありません。
詳細は 『Gradle で環境ごとにあれもこれも変更する』を参照してください。

ビルド 実行

メニューの『ビルド実行』をクリックしてビルドしてみましょう。
こんな感じで 初回ビルド時に Gradle がダウンロードされインストールされます。

ユーザーanonymousが実行
Checkout:workspace / /Users/bluepapa32/.jenkins/jobs/gradle-jenkins-sample/workspace - hudson.remoting.LocalChannel@33c4bcda
Using strategy: Default
Last Built Revision: Revision 5ec102ee2d1e76149e05568b59cc9c850711f4c5 (origin/20110317)
Checkout:workspace / /Users/bluepapa32/.jenkins/jobs/gradle-jenkins-sample/workspace - hudson.remoting.LocalChannel@33c4bcda
Fetching changes from the remote Git repository
Fetching upstream changes from https://github.com/bluepapa32/gradle-environment-sample.git
Commencing build of Revision 5ec102ee2d1e76149e05568b59cc9c850711f4c5 (origin/20110317)
Checking out Revision 5ec102ee2d1e76149e05568b59cc9c850711f4c5 (origin/20110317)
[workspace] $ /bin/sh -xe /var/folders/VZ/VZFIYL65EiiQlDqyahjaok+++TI/-Tmp-/hudson5894203962530008057.sh
+ ./gradlew -q -Penv=ci

/Users/bluepapa32/.jenkins/jobs/gradle-jenkins-sample/workspace
Downloading http://gradle.artifactoryonline.com/gradle/distributions/gradle-1.0-milestone-1-bin.zip
................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Unzipping /Users/bluepapa32/.gradle/wrapper/dists/gradle-1.0-milestone-1-bin.zip to /Users/bluepapa32/.gradle/wrapper/dists
server.url = http://app/setting

database.driverClassName = org.hsqldb.jdbcDriver
database.url             = jdbc:hsqldb:mem:ciDb
database.username        = bluepapa32
database.password        =

Finished: SUCCESS

もし、興味のある方は

https://github.com/bluepapa32/gradle-environment-sample/tree/20110317
にサンプルがありますので試してみましょう。