LoginSignup
4
7

More than 5 years have passed since last update.

CircleCIでAndroidアプリをビルドする(2017年4月)

Last updated at Posted at 2017-04-13

こんにちはsekitakaです。
アプリもCIしっかりまわしたいですよね。
今回はCircleCIでAndroidアプリをビルドする方法を紹介します。
CircleCIでビルドできたサンプルプロジェクトも公開しているので、初めての方はforkして試してみるとわかりやすいと思います。

特に重要なのはcircle.ymlとAndroid SDK関連の利用規約への同意をコマンドラインでやることです。

GitHubでプロジェクト作成

予めCIしたいAndroidプロジェクトをGitHubのプロジェクトにしておきます。PrivateでもPublicでも構いません。
リポジトリちょっかにgradlewがある構成の方が、gradlewの実行を./gradlewで出来るので少し楽です。

CircleCIでプロジェクトをフォローする

  • 既存のプロジェクトがない場合、insightメニューからAdd Projectを選択する
    circleci_1.png

  • ビルドしたいリポジトリを追加する
    circleci_2.png

これでリポジトリにpushされるとCircleCIでビルドを試みるようになります。

circle.ymlを作成

CircleCIがヒルドするにはcircle.ymlというファイルが必要です。このファイルはリポジトリ直下に配置しましょう。

circle.yml
machine:
  pre:
    # デバッグ用に情報を出力
    - env
    - pwd
    - ls

# チェックアウト関連
checkout:
  post:
    - echo CheckoutPost
    - git submodule sync
    - git submodule update --init

# 依存関係解決
dependencies:
  pre:
    # ライセンスへの同意
    - echo y | android update sdk --no-ui --all --filter "tools,build-tools-25.0.2,platform-tools,android-25,extra-android-m2repository"
    - mkdir -p $ANDROID_HOME/licenses
    # ローカル開発環境で同意した情報を使用する
    # OSXの場合このファイルは`~/Library/Android/sdk/licenses/android-sdk-license`
    - echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > ${ANDROID_HOME}/licenses/android-sdk-license

  override:
      - ./gradlew dependencies || true

# テスト実行
test:
  override:
    - ./gradlew test

# コンパイル
compile:
  override:
    - ./gradlew assembleDebug
    - cp -r app/build/outputs $CIRCLE_ARTIFACTS

dependencies

dependenciesではライセンスへの同意をしています。echo -yから始まる行と `echo "8333..."の行の両方が必要かよくわからないのですが、このcircle.ymlでビルドできました。

compile

./gradlew assembleDebugでデバッグビルドのapkを作成しています。
生成されたディレクトリを$CIRCLE_ARTIFACTSにコピーすることで、CircleCIの成果物として管理画面からダウンロードできるようになります。
わーい たーのしー

circleci_3.png

まとめ

いかがでしたでしょうか。CircleCIでAndroidアプリをビルドする方法を紹介しました。CIはエンジニアを幸せにしてくれると思います。積極的に取り入れていきたいですね。

使用したサンプルプロジェクトを公開していますので、自由に使用してください。

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7