Lionaroid技術ブログ

Androidやドローンに関する技術的な記事やiRacingなどのシミュレータに関する記事

Travis CI で Android プロジェクトをビルドする(β版)

Travis CIがAndroid のビルドに対応したそうです(β版ですが )。さっそく、公式ドキュメントをまとめてみました。

警告

本機能は開発中であり、後方互換性やマイグレーションのサポートなく変更される恐れがあります。

このガイドがカバーする範囲

このガイドは Android プロジェクトに関する ビルド環境及び設定のトピックに焦点を当てています。最初に、Getting Startedgeneral 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ビルダーでサポートされません。基本的wait_for_emulator のようなスクリプトを移植し、テストがエミュレータで実行可能なように .travis.yml を適用する必要があります。

依存性の管理

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 ガイドに記載されている内容でオーバーライド可能です。

複数の JDK でテスト

任意のJVM言語について、複数のJDKに対してテストすることが可能です。

ビルドマトリクス

Android プロジェクト向けでは、env と jdk はビルドマトリクスを生成するための配列として与えられます。

実際に使ってみて

相当簡単にビルドの実行ができました。ただ、Androidのライブラリプロジェクト(例えばFacebook SDK)を使用するプロジェクトを実行するにはひと工夫必要そうです。