へんてこのブログ

日々気づいたことや、最近やっていることを書いています

Travis CIからDeployGateにアップロードする

Travis CIでAndroidアプリをビルドしてDeployGateにアップロードします

使うもの

今回のサンプルプロジェクト

henteko/AssistHack · GitHub

gradle準備

普通にgradleでビルド出来るようにしたAndroidアプリのプロジェクトを用意します
そして、gradleでdeploygateに簡単に上げられるgradleプラグインがあるので詳しくはここを参照しながら準備して下さい
ここで重要なのが、deploygateを上げる際にtoken(api key)が必要なんだけど、これは公開してはいけないので、gradle.propertiesを使って外部化する(下のやつのmyToken部分)
今回はこのような形になった

travis準備

これ読んでる人なら大丈夫だと思う気がする
githubにプロジェクト上げてルートに.travis.ymlを生成する
.travis.ymlの中はここを参考にさせてもらった
最終的にこのような形になった

ここで重要なのがsecureの文字列
ここにはdeploygateのtokenを記述する
今回はgradleでmyTokenといったプロパティ変数名で読み込んでいるので、こんなコマンドでいける

$ gem install travis
$ travis encrypt ORG_GRADLE_PROJECT_myToken=<deploygateのtoken>

これで出力された文字列を.travis.ymlに書けば、travis内で以下のコマンドを実行したのと同じになる

$ export ORG_GRADLE_PROJECT_myToken=<deploygateのtoken>

ちなみに、ORG_GRADLE_PROJECT_<変数名>ってのを環境変数に加えると、自動でgradleがプロパティ変数化してくれる、便利

あとはgithubにpushするだけ

pushするだけでビルドが走って成功すれば自動でdeploygateにアップロードされます
便利

参照

Android Studio projectをTravis-CIでビルドする - Islands in the byte stream
Travis CI からHerokuへのデプロイを自動化してみた - アジャイルSEの憂鬱
Literal Ice: Gradleでプロパティなどの設定情報を外出しして切り替えて使う
Travis CI: Encryption keys DeployGate/gradle-deploygate-plugin · GitHub