Travis CI で Android プロジェクトをビルドする(β版)
Travis CIがAndroid のビルドに対応したそうです(β版ですが )。さっそく、公式ドキュメントをまとめてみました。
このガイドがカバーする範囲
このガイドは Android プロジェクトに関する ビルド環境及び設定のトピックに焦点を当てています。最初に、Getting Started と general build configuration guides を読んでください。
Android プロジェクト向け CI 環境
概要
Travis CI 環境は、複数のJDK, Ant, Gradle, Maven, sbt, Leiningen といった JVM 言語向けのビルドツールセットを提供します。
以下のように設定します:
language: android
.travis.yml ファイルで、プロジェクトは以下のプリインストールされた Android SDK 22.6.2 の Android 環境でビルドされます。
Android SDK コンポーネントのインストール or アップデートの方法
.travis.yml で、以下の例に示すように、オプションとしてインストールとライセンスを受諾した SDK のコンポーネントを定義できます:
language: android android: components: - tools - build-tools-19.0.1 - android-19 - sysimg-19 - extra-android-support licenses: - android-sdk-license-bcbbd656 - '.*intel.+'
(対話型のプロンプトで自動的に対話するためにコマンドが使用されるように、Tcl syntaxを使って)正規表現でライセンスを参照することができる一方、正確なコンポーネント名が指定されなければなりません。
特定のライセンスが指定されていない場合、Travis CI は デフォルトとして android-sdk-license-bcbbd656 のみ許容します。
language: android android: components: - build-tools-18.1.1 - android-8
依存性の管理
Travis CI Android ビルダーは、プロジェクトが(他に影響を与えずにテストを実行する前にプロジェクトの依存性を自動的に下げる )Maven や Gradle のような JVM ビルドツールによってビルドされることを仮定しています。
もしプロジェクトが Ant やその他のビルドツールでビルドされる場合、依存性は自動的にはハンドルされず、install: キーを使用して正確なコマンドを .travis.yml に指定する必要があります。
例:
language: android install: ant deps
Maven 向けデフォルトテストコマンド
プロジェクトがリポジトリのルートに pom.xml を含み、build.gradle を含まない場合、Maven 3がビルドに使用されます。テストスイートを実行するために使用されるデフォルトは次のとおり。
mvn install -B
これは、general build configuration ガイドに記載されている内容でオーバーライド可能です。
Gradle向けデフォルトテストコマンド
プロジェクトのリポジトリルートに build.gradle を含む場合、Gradle がビルドに使用されます。テストスイートを実行するために使用されるデフォルトは次のとおり。
gradle build connectedCheck
プロジェクトのリポジトリルートに gradlew ラッパースクリプトが含まれる場合、Travis Android ビルダーは代わりに使用を試みます。
デフォルトのコマンドは以下のようになります:
./gradlew build connectedCheck
これは、general build configuration ガイドに記載されている内容でオーバーライド可能です。
デフォルトテストコマンド
Travis CI が Maven または Gradle ファイルを見つけられない場合、Travis CI Android ビルダーは プロジェクトのビルドに Ant の使用を試みます。
テストスイートを実行するためのデフォルトは以下のように使用されます。
ant debug installt test
これは、general build configuration ガイドに記載されている内容でオーバーライド可能です。
例
- roboguice/roboguice(Google Guice on Android)
- ruboto/ruboto (A platform for developing apps using JRuby on Android)
- RxJava in Android Example Project
- Gradle Example Project (the wait for the emulator must be fixed)
- Maven Example Project (still using language: java, see pending pull request)