2013年7月10日

【Jenkins】アプリビルドに便利なプラグインまとめ



Jenkinsにアプリビルドを任せっきりなdommyです。
一応コミット前にはローカルでちゃんとビルドしますよ。
たまに忘れますけど。

と、今回はアプリビルドに特化したJenkinsプラグインの紹介です。



Jenking GIT Plugin




まずはSCMプラグインから、Gitプラグインの紹介。

単純にGitからcloneする為のプラグインです。
ブランチの指定も出来ます。

ポーリング感覚を5分とかに設定しておけばレポジトリをチェックしてくれます。

コミット後、すぐにビルドしたい場合はgitのhooksに登録して下さい。

登録方法は【Jenkins】GitのコミットをHookしてJobを実行を参考に


Jenking Multiple SCMs Plugin


複数のSCMからソースをコピーしてくる為のプラグインです。



例えば、デザイン、ライブラリ、アプリ本体と、別のレポジトリで管理されていて、
アプリはそれらを組み合わせてビルドする時なんかに便利です。

シェルを書くのが苦手な人向けだと思いますが、
シェルを書けるのであれば、別々のJobにして、
成功をTriggerにして、別のJobを走らせれば良いと思います。

その際にcurlコマンドで成果物を取ってくるというやり方です。

私はそちらで設定しています。


Ant Plugin


antビルド用のプラグインです。
Androidをビルドするなら導入しなければいけないって訳でも無いのですが、
あると、シェル書かなくても楽に出来ます。

プラグインの画面はこんな感じ。



ただし、ターゲットに指定するには、build.xmlにすべて記載する必要があります。
また、Windows環境とMac/Linux環境ではlocal.propertiesの値が違うので、

android update project --path ${WORKSPACE}
を実行する必要があるので、結局シェルで書いても同じなような・・・


Android Emulator Plugin


JUnitTestぐらいで使います。

実際にエミュレータで走らせて、テストをパスするかどうかをチェックします。

エミュレータはOSや画面サイズの設定もできるので、そこそこ使えるやつです。
が、エミュレータの設定は.avdファイルを作って、プロジェクトにコミットしておいた方が早いと思います。

その場合、.avdファイルを指定すれば、細かいエミュレータの設定は要りません。


Android Lint Plugin


Androidのソースコードのチェックをしてくれます、Android Lint Pluginです。

res/main.xmlとか、Viewに関してかなりイエローカードを出してくれます。

正直、ただただウルサイので、気が向いた時にソースコードを直すぐらいに使います。

lintの結果を出力するには、

android-sdk/tools/lint . --xml ./lint-results.xml

をシェルで実行して下さい。

ビルド後に結果をグラフで表示するために、
下のように設定して下さい。




Xcode Plugin


iPhoneアプリのビルド用プラグインです。
私はシェルで書いてるんですが、シェルで書かなくても.ipaファイルまで出力してくれます。

Xcodeのターゲットとか、Provisioning Profileとか指定すれば、
後は勝手にやってくれるので、簡単なアプリなら楽ですね。

細かい設定があったりとか、面倒な場合は全部シェルで書きます。


iPhoneビルド用のシェルの書き方は【iPhone】Jenkins CIで自動ビルドを参考にして下さい。


Clang Scan-Build Plugin

先ほどのAndroid Lint PluginのXcode版です。

Clang Static Analyzerが必要ですが、ソースコードの解析をしてくれます。

scan-buildコマンドのダウンロードはClang Static Analyzerから。

Static Analyzerの結果の出力は
scan-build -k -v -v -o "${WORKSPACE}/clangScanBuildReports" xcodebuild \
-project ${PROJECT}.xcodeproj -sdk iphoneos -arch "armv7 armv7s" \
-target ${TARGET} -configuration Debug clean build

と、こんな感じで設定。


ビルド後の処理にPublish Clang Scan-Build Resultsを設定すれば終了です。

Threasholdの設定とかありますが、0にするとビルドが全部エラーになりそう・・・。


HTML Publisher Plugin


最後に、HTMLの成果物をHTML形式で表示してくれるプラグインです。

最新版のアプリのjavadocや、appledocなんかを設定すると、
クラスリファレンスの参照先がジョブに紐づくので見やすいです。


最後に


アプリをビルドするだけでも、もっと紹介したいプラグインがたくさんありますが、
今回はアプリで特に必要になりそうなものを紹介させて頂きました。

また、気が向いたらJenkinsの便利なプラグインとして紹介させて頂きます。