Android project on TravisCI and CircleCI
仕事の関係で CircleCIを使ってみたので、privateの Android Projectに適用してみた。けどうまく行かなかったので、勢いで TravisCIに乗り換えてなんとなくうまく行くようになった。 そこら辺を日本語でググってみてもあまり情報がないみたいなので、もったいないのでここに書いて見る次第。
CircleCI編
まず最初に言うと Android Projectに CircleCIは今のところ向いていない。サポートとかは結構よいので今後変わるかもしれないけど、現状では Androidのサポートは優先順位低めになっているもよう。
2014-02-10 に書き足し: 下に書いた 32bitバイナリの件ですが、今はもう直ったようです。自分のプロジェクトの buildも greenに戻りました。さすがサポートは素早いです。
具体的に言えば、そもそも 32bitバイナリのサポートを切っているので AndroidSDKが動かない。というわけでダメダメ。これは セキュリティホール に対応するためなのでもっともな面はあるけど、Androidのサポートは後回しになっているとも言えるだろう。
念のため、動いていた頃のメモは Qiitaに書いておいた。
TravisCI編
CircleCIでいろいろハマったおかげでこちらはそんなに問題なかった。現状 GoClock/.travis.yml でとりあず compileまではできている。
実は Gradleベースの Androidプロジェクトを TravisCIに乗せるには、android-tdd-playground というお手本がポピュラーになっていて、これの .travis.ymlをコピーすればまあうまくいく。とはいうものの、これはいくつか不満があるのでちょっと手を加えた。
gradlewを使うようにした
gradle distributionをわざわざ Downloadするよりこちらのほうが gradleのマナーにのっとっていると思われるので。
build-toolsを android commandをつかって installするよにした
これは、元のがなんでそんなややこしくしてるのかよくわからん。
ということですこし完結になったと自負している。
instrumentation testをしていない
これは、もとの projectでまともな instrumentation testを実装していないため。 android-tdd-playgroundでは、emulatorを立ち上げてそこまでやっている。
まとめ
まあ、趣味プロジェクトだったら TravisCIでいいんじゃないでしょうか。タダだし。
CircleCIもいろいろ気が利いているのでもっと頑張って Androidサポートして欲しいので、今後のがんばりに期待します。