Jenkins + git + ant

FacebookSDKをlibrary projectとして使っていて
そのプロジェクトをJenkinsでビルドしようとしてドはまりしたのでメモ。

最初はsubmoduleとしてビルドしようと思ったがディレクトリ構造いじることになるので却下。
最終的にfacebook-android-sdkはシェルのほうでgit cloneすることになった。

Jenkinsで既存のフォルダ構造を維持したまま指定したサブディレクトリへチェックアウトするには
Local subdirectory for repo (optional)のオプションを指定してやればよさそう。

ついでにシェルでgit cloneするfacebook-android-sdkはこんな感じで同じくサブディレクトリへ出力。

$ git clone https://github.com/facebook/facebook-android-sdk.git library/facebook-android-sdk

上記の手順を行った結果のディレクトリ構造は以下のとおり。

.
├── xxxxx_xxxxx
│   ├── AndroidManifest.xml
│   ├── assets
│   ├── bin
│   ├── build.xml
│   ├── default.properties
│   ├── libs
│   ├── proguard-project.txt
│   ├── project.properties
│   └── src
│ 
└── library
    └── facebook-android-sdk
        ├── CONTRIBUTING.mdown
        ├── facebook
        ├── lib
        └── libs

project.propertiesはローカル環境のままなのでrmしてやってproject.propertiesを更新する。

$ android update project -p ./xxxxx_xxxxx -l ../library/facebook-android-sdk/facebook

Jenkins + git plugin

git pluginをJenkinsさんの言われるがままにインストールするとNullPointerExceptionと500エラー。
ダウングレードすれば動くらしいので以下のURLから1.1.26を落としてきて
[プラグイン管理] -> [高度な設定]からgit.hpiをアップロードする。

http://updates.jenkins-ci.org/download/plugins/git/

リストには表示されないのでJenkinsを再起動後[インストール済み]を確認すると表示されるので
チェックを入れて再度再起動する。

git@なリポジトリを入力して赤文字のエラーが出るがコンソールでgit clone成功していれば問題ないです。