Android Studio projectをTravis-CIでビルドする

embarkmobile/android-maven-example を参考にしつつこんな感じでいけた。

.travis.yml

language: java
jdk: oraclejdk7
before_install:
    # Install base Android SDK
    - sudo apt-get update -qq
    - sudo apt-get install -qq libstdc++6:i386 lib32z1
    - export COMPONENTS=build-tools-19.0.1,android-19,sysimg-19,extra
    - curl -L https://raw.github.com/embarkmobile/android-sdk-installer/master/android-sdk-installer | bash /dev/stdin --install=$COMPONENTS
    - source ~/.android-sdk-installer/env
    - export TERM=dumb # to get clean gradle output

embarkmobile/android-sdk-installerandroid(1) をつかってヘッドレスでAndroid SDKをインストールしてくれるのだけど、Google Play Servicesなどを使いたいときはCOMPONENTSに "extra" を指定する必要がある。 "extra" は extra components をすべてインストールするので本当は必要な物だけ個別にインストールするのがいいのだけど、今回は手を抜いている。個別にインストールしたいときは、 android list sdk --extended --all で filterに指定する名前を調べることができる。

また、gradle(1)はデフォルトだとターミナルの制御文字を使うが、Travisはこれに対応していないため、ターミナルへの出力が激しく崩れてしまう。これを避けるために、TERM=dumb を設定している。

インストールが無事におわると、"install" フェーズで ./gradlew assemble、"script" フェーズで ./gradlew checkを実行するので、それに合わせてGradleタスクを設定するとよさそうだ*1

*1:もちろん独自にインストールとテストのタスクを定義して.travis.ymlにその旨を書いてもいいが、手動でビルドすることも考えると特別な必要がなければデフォルトにしておくのがよい。