ScientificLinux6.2にJenkinsを導入してみます。
目標はandroid-testも含めた自動ビルドですが、
とりあえず今回は自動ビルドのみです。

【環境とか】
ScientificLinux6.2(VM)
jenkins ver. 1.466
java version 1.6.0_22


【まずは、adbが必要とするJavaのバージョンを確認。】
AndroidはまだJDK1.6推奨?なので、丁度いい。
[root@localhost /]# java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.6) (rhel-1.43.1.10.6.el6_2-i386)
OpenJDK Client VM (build 20.0-b11, mixed mode)

【adbが必要とするライブラリをyumでサクっとインストール。】

[root@localhost /]# yum install ncurses-devel
Loaded plugins: refresh-packagekit, security
sl                                                                                                                                      | 3.2 kB     00:00
sl-security                                                                                                                             | 1.9 kB     00:00
sl-security/primary_db                                                                                                                  | 2.7 MB     00:07
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ncurses-devel.i686 0:5.7-3.20090208.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================================================================
Package                                  Arch                            Version                                          Repository                     Size
===============================================================================================================================================================
Installing:
ncurses-devel                            i686                            5.7-3.20090208.el6                               sl                            641 k

Transaction Summary
===============================================================================================================================================================
Install       1 Package(s)

Total download size: 641 k
Installed size: 1.7 M
Is this ok [y/N]: y
Downloading Packages:
ncurses-devel-5.7-3.20090208.el6.i686.rpm                                                                                               | 641 kB     00:02
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : ncurses-devel-5.7-3.20090208.el6.i686                                                                                                       1/1

Installed:
  ncurses-devel.i686 0:5.7-3.20090208.el6

Complete!


【jenkinsのyumをダウンロード】

[root@localhost /]# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
--2012-06-03 08:50:26--  http://pkg.jenkins-ci.org/redhat/jenkins.repo
pkg.jenkins-ci.org をDNSに問いあわせています... 63.246.20.93
pkg.jenkins-ci.org|63.246.20.93|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 75 [text/plain]
`/etc/yum.repos.d/jenkins.repo' に保存中

100%[==========================================================================================================>] 75          --.-K/s 時間 0s

2012-06-03 08:50:27 (6.98 MB/s) - `/etc/yum.repos.d/jenkins.repo' へ保存完了 [75/75]


【jenkinsパッケージの署名を検証するためのキーをインポート。】
RPMバージョン4.1以降は、インストールやアップグレードの際にパッケージの署名がチェックされるため。





【yumでjenkinsをインストール】

[root@localhost /]# yum install jenkins
Loaded plugins: refresh-packagekit, security
jenkins                                                                                                                      |  951 B     00:00
jenkins/primary                                                                                                              |  16 kB     00:00
jenkins                                                                                                                                     139/139
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package jenkins.noarch 0:1.466-1.1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================
Package                            Arch                              Version                              Repository                          Size
====================================================================================================================================================
Installing:
jenkins                            noarch                            1.466-1.1                            jenkins                             45 M

Transaction Summary
====================================================================================================================================================
Install       1 Package(s)

Total download size: 45 M
Installed size: 46 M
Is this ok [y/N]: y
Downloading Packages:
jenkins-1.466-1.1.noarch.rpm                                                                                                 |  45 MB     00:34
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : jenkins-1.466-1.1.noarch                                                                                                         1/1
warning: /etc/yum.repos.d/jenkins.repo created as /etc/yum.repos.d/jenkins.repo.rpmnew

Installed:
  jenkins.noarch 0:1.466-1.1

Complete!

【jenkins起動!】
[root@localhost /]# /etc/init.d/jenkins start
Starting Jenkins                                           [  OK  ]

【一応プロセスの確認】

[root@localhost /]# ps -ef | grep jenkins
jenkins   3159     1 95 09:20 ?        00:00:03 /usr/lib/jvm/jre-1.6.0/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --ajp13Port=8009 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
root      3176  1645  0 09:20 pts/0    00:00:00 grep jenkins


【ブラウザからjenkinsを確認。とりあえずVM上のFirefoxからアクセス。】
もし外部からアクセスする場合は、ファイアウォールの設定で8080ポートの解放を忘れずに!!

9455ad9f.png


【Androidプラグインをインストール】
Jenkinsの管理⇒プラグインの管理⇒利用可能タブ⇒フィルタに「Android」と入力
⇒「Android Emulator Plugin」にチェックを入れて「再起動せずにインストール」

f4b185e3.png


【新規ジョブの作成】

プロジェクトは、すごく昔に作りかけたものです。
svnリポジトリはフリーのやつ(unfuddle)を使ってます。

aafe95ff.png




【ビルド環境の設定】

f6289d5f.png



【ビルドの設定】
Antの呼び出しの前にシェルの実行を持ってこないとbuild.xmlファイルが無くてエラーになります。
まさかドラッグドロップで順番を入れ替えられるとは知らなくて、
1~2時間悩みました・・・OTL


2799dd3f.png

【convto16.sh】
環境パス通してandroid update project コマンドでbuild.xmlを作成しているだけです。
export PATH=/var/lib/jenkins/tools/android-sdk/tools:/sbin:/usr/sbin:/bin:/usr/bin
PATH=/var/lib/jenkins/tools/android-sdk/tools:/sbin:/usr/sbin:/bin:/usr/bin
cd ConvTo16
android update project -p /var/lib/jenkins/workspace/ConvTo16/ConvTo16/ -n ConvTo16

【ビルド実行】

99065f0b.png


45893d03.png


【ダッシュボードでビルド成功を確認】

5018e6bb.png



【apkファイルもちゃんと作られている】

21d702c7.png


おわり!!!!


【感想】

一回ジョブを作成してしまえばサーバ上で定期実行の自動ビルドができるし、
いちいちモジュールを最新にしなくてもsubversionの最新を勝手に取り込んでくれるので素晴らしい。
RSSとかでビルド失敗だけ通知したりできるので良いですね。

あとはjUnitも合わせて実行できるようにすれば満足できそうだ。