*

Circle CIとDeployGateでAndroidアプリを自動デプロイ

      2015/10/31

CIの導入に乗り遅れているデジタルクエストでも、いい加減、便利なんだから使おうと思い導入してみました。
Circle CIの導入記事はたくさんあったのでスムーズに進みましたが、幾つか軽くハマったポイントがあったので残しておきます。

完成イメージはこんな感じとなってます。

Androidアプリの自動デプロイフロー

  1. Pull Request後 master branchにマージし、Github へ Push
  2. Circle CI が検知後、ビルド開始
  3. ビルド終了後、deploy gate API へ curl で apkアップロードをリクエスト
  4. chatwork へ deploy gate のURLを通知

ほぼコチラで紹介してある通りのフローです。
(大変参考になりました!)

以下、異なる部分だけピックしてご紹介します。

ディレクトリ構造上、深い場所にAndroidプロジェクトが置いてある

一般的にはあまり見ない形だと思いますが、使用している Unicornフレームワーク の都合で、Androidプロジェクトの階層が深い位置にあります。
android_treetreeで見るとめっちゃ深い。。
見なかったことにして、この状態で circle.yml への記述は、以下のようにしました。

gradlew の pオプションで Projectのpathを指定しているとこがポイントです。

app:preDexDebugAction でビルド失敗

> Building 68%9% > :app:preDexDebugAction failed:
ビルドが途中で失敗していました。
よくある話のようでしたが、一応メモ。
rootにあるbuild.gradleに以下追記することで回避できます。

引用:http://stackoverflow.com/questions/28409608/gradle-assembledebug-and-predexdebug-fail-with-circleci

上述の circle.yml 内の実行するコマンドに オプション [ -PdisablePreDex ] を付けてビルドすればOK。

deploygate API の curl で失敗

curl: (26) couldn’t open file
ファイルPATHが異なっているのであろうと思い、色々と試行したが通らず。。
circle_ci_with_sshこんなときは!Circle CI の with ssh を利用してサーバーを直接覗いてみました。
OutputされているAPKファイル名が違うっていうお恥ずかしい話でしたが、サクっと中に入って直接コマンド操作も可能なのはとても便利です。

 

ということで、無事、Circle CI + DeployGateでAndroidアプリを自動デプロイすることができました。
Chatworkでビルドの通知がびゅんびゅん飛ぶので、実装されたものがすぐさま確認できて気持ちがよくなる…ハズ!

次回は、iOSアプリの自動デプロイに挑戦します。たぶん。

参考サイト

CircleCIとDeployGateでAndroidアプリのリリース作業を自動化してみた
フリルAndroid版のCircleCI導入事例
CircleCIとDeployGateで、IonicのAndroidアプリを自動デプロイ
CircleCIの便利な機能
Gradle assembleDebug and preDexDebug fail with CircleCI

Author Profile

watahiki
株式会社デジタルクエスト 開発部 部長
サーバーサイドのエンジニアでもあります。
直接開発に関わらなくなると、一瞬で置いていかれてしまう危機感を持ちながら、バランスに気をつけて仕事してます。
趣味は麻雀。
  • このエントリーをはてなブックマークに追加


  関連記事

digitalquest_icon
Hello World

株式会社デジタルクエストの開発ブログです。 弊社ではWebサービス、iOS/An …

DigitalQuest
オフィス移転のご報告

本日5/23より、株式会社デジタルクエストは新オフィスにて営業を開始しております …

girl-1076998_1920
結局わたしでしょ?♡

Hi!ミシェルさんです 😀   サービスの企画とかUXについての意見て …

amazon_icon
【速報】PHP7をAmazon Linuxに早速入れてみて、5.6とのベンチマークを取ってみた。

PHP7が11年ぶりに正式リリースされたそうなので、早速試してみたです速報。 試 …

AWS_CloudFormation-200x200
手軽にインフラ環境構築の自動化を実現する(したい) 其ノ壱 CloudFormationの使い方をマスターする

DQには実はインフラ専任のエンジニアは居ません。 案件担当のエンジニアがインフラ …

digitalquest_icon
UNICORN & PHOENIX の紹介

デジタルクエストで取り組んでいる技術の紹介です。 弊社のエースエンジニア @sa …

digitalquest_icon
SPAJAM2016 東京D予選に出てみた話 – 事前準備編 –

SPAJAM2016 東京D予選に行ってきました。 SPAJAM2016と言うの …

AWS_CloudFormation-200x200
手軽にインフラ環境構築の自動化を実現する(したい) 其ノ弐 CloudFormationでAurora環境を構築してみる。

前回(手軽にインフラ環境構築の自動化を実現する(したい) 其ノ壱)の続きです。 …

打刻漏れ通知
GAS × Chatwork × Spreadsheetの勤怠管理システムを公開してみた

どうも、デジタルクエストのヒヨコエンジニアのyokoです。 今回は、Google …

akerun
勤怠管理システムにAkerunを組み込んでみた

どうも、デジタルクエストのヒヨコエンジニアのyokoです。 以前、Google …