AWS CodeBuildでAndroidをビルドしてみた

eyecatch_codebuild

まえがき

re:Invent 2016でWerner Vogels氏によるキーノートの中で発表された新サービス、CodeBuildでAndroidでもビルドしたい!
っということでやってみました。

手順

ソースコード

Android Projectに、android-sdk-license とbuildspec.ymlを追加します。
android-sdk-licenseは、$ANDROID_HOME/licenses/android-sdk-license からコピーしておきます。
その理由はこちらを参照してください。

buildspec.ymlはチュートリアルとDockerfileを参考に作りました。

.Project Root
├── SampleAndroidProject.iml
├── android-sdk-license
├── app
├── build
├── build.gradle
├── buildspec.yml
├── gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
├── local.properties
├── settings.gradle
└── test

buildspec.yml

version: 0.1

phases:
  install:
    commands:
      - echo Nothing to do in the install phase...
      - sudo apt-get -y install wget
  pre_build:
    commands:
      - echo Nothing to do in the pre_build phase...
  build:
    commands:
      - wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
      - tar zxvf android-sdk_r24.4.1-linux.tgz
      - mkdir -p android-sdk-linux/licenses
      - cp android-sdk-license ./android-sdk-linux/licenses/
      - echo sdk.dir=`pwd`/android-sdk-linux > local.properties
      - ./gradlew assemble
  post_build:
    commands:
      - echo Build completed on `date`
artifacts:
  type: zip
  files:
    - app/build/outputs/apk/app-debug.apk

CodeBuild

1.CodeBuildを開き、新しいプロジェクトを作る

スクリーンショット_2016-12-07_9_18_14

2.アプリの情報を入力する

スクリーンショット_2016-12-07_9_19_53

スクリーンショット_2016-12-07_9_20_29

スクリーンショット_2016-12-07_9_20_45

3.対象プロジェクトを選び、ビルドする

スクリーンショット_2016-12-07_9_21_13

スクリーンショット_2016-12-07_9_21_23

4.ビルドしたいブランチを入力する

スクリーンショット_2016-12-07_9_21_34

5.進捗が表示される。完了まで待つ。

スクリーンショット_2016-12-07_9_33_38

以上です!

まとめ

比較的簡単にビルドできるようになりました。
次はAmazon EC2 Container Registry(Docker レジストリ) + CodeBuildを使って、ビルドしてみたいと思います。

参考