Jenkins で Android テスト

(追記)この状態でしばらく使ってみたが、見ての通り一発でインストールが通らないだけでも何が起こっているかいまいちわかりづらいエラーが出るシステムは、何かあった時もやはり何が起こっているかいまいちわかりづらいエラーが出て復旧が面倒という印象だった。次回構築するときは別の方法を検討したいと思う。

優秀なプラグインが公開されているおかげでなんてこともない……はずなのだが、なんか迷走した挙句にすごく簡単にできることがわかったのでメモ。キーワードは「いらんことすんな」。

手順

  • Jenkins スレーブとして構成する。つまり、とりあえず最初に Jenkins スレーブにする。ホームディレクトリは必要だが、sudo できる必要はない。
  • gradle を入れる。
  • Jenkins に “Android Emulator Plugin” を入れる。つまり、 Android SDK はまだ入れない。
  • なんでもいいから Android アプリのテストを試みる。つまり、 Android SDK を自分で入れようなどと考えずにテストを試みる。プラグインが入れてくれるが、失敗した。
  • ここで初めて Android SDK を触る。結局のところ Android SDK を入れようとして完全には headless で入らなかったという状況になっているので、 Jenkins と同じ権限で (workspace)/tools/android-sdk/tools/bin/sdkmanager –list を実行する。
  • 再度テストを試みる。通る。

ここで余計なことをすると、

Warning: File /home/xxxx/.android/repositories.cfg could not be loaded.

とか

['(workspace)/tools/android-sdk']: Does not look like an Android SDK directory

とか、とにかく「なんで???」としか言いようがないエラーメッセージを睨めっこして、ぐぐっても必要な情報が出なくて苦労することになる。