CircleCI 2.0でAndroidアプリをビルドする

最近CircleCI 2.0のClosed Betaがリリースされました。

circleci.com

CirceCI 2.0ではDockerをネイティブでサポートしたので、 さっそくDockerイメージを使ってAndroidアプリをビルドしてみました。

CircleCIの設定はビルドしたいアプリのディレクトリに .circleci/config.yml を作って以下のように書きます。今回はDockerのイメージに既にAndroidアプリのビルド環境が整っているbeevelop/androidを使いました。

version: 2
jobs:
  build:
    working_directory: ~/working_directory
    docker:
      - image: beevelop/android:latest
    environment:
      ANDROID_HOME: /opt/android
    steps:
      - checkout
      - run:
          name: System information
          command: |
            mkdir $ANDROID_HOME/licenses
            echo [ANDROID_SDK_LICENSE] >> $ANDROID_HOME/licenses/android-sdk-license
            echo y | android update sdk --no-ui --all --filter "build-tools-25.0.2"
            echo y | android update sdk --no-ui --all --filter "extra-android-m2repository,extra-google-m2repository"
      - run:
          name: Install dependencies
          command: ./gradlew dependencies
      - run:
          name: Build
          command: ./gradlew assembleRelease

gist5b588be52fde061900e89dbf1abff990

今回は Build ToolsGoogle Repository を追加でインストールしています。Android SDKのライセンス周りは以下の記事を参考にしました。

Circle CIでAndroid SDK周りのライセンス許諾をローカル環境に合わせる - visible true

今まではブラックボックスの部分が多かったので大変でしたが、これからはDockerfileを見ればわかったり自分で作れたりするのですごく楽になりました。

また、以下の記事のようにローカルで設定ファイルを実行できるのですごく便利です。

CircleCI 2.0はローカル環境で実行できるよ - Qiita

※CircleCI 2.0はClosed Betaなので、使う前にこちらから申請する必要があります。