Android
gradle
DeployGate
TravisCI

Travis CIを使ってgradleでDeployGateに自動デプロイ

More than 3 years have passed since last update.

端末にUSBケーブルつないでデバッグビルドをインストール、とかしんどい。

TravisCIを使ってGitHubにpushする度にDeployGateにデバッグ版のビルドがデプロイされるように設定しました。

gradleからDeployGateへのデプロイ

build.gradleにDeployGateの設定を追記し、gradleからDeployGateへのデプロイをできるようにしておきます。

DeployGateのトークンは環境変数から読み込むように設定。

あとuploadDeployGateDebugタスクはassembleDebugタスクに依存するように設定、./gradlew uploadDeployGateDebugコマンドだけでデプロイできるように。

build.gradle
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
        classpath 'com.deploygate:gradle:0.6'
    }
}
apply plugin: 'android'
apply plugin: 'deploygate'

deploygate {
  userName = "$System.env.DEPLOYGATE_USER"
  token = "$System.env.DEPLOYGATE_TOKEN"

  apks {
    debug {
      sourceFile = file("${project.buildDir}/apk/bookscan-manager-debug-unaligned.apk")
    }
  }
}

uploadDeployGateDebug.dependsOn assembleDebug

Travis CIにDeployGateのトークンを設定

Travis CIのSecure environment variablesにしたがってDeployGateのトークンを暗号化して登録

$ gem install travis
いろいろ
$ cd my_project
$ travis encrypt DEPLOYGATE_TOKEN=1234567890
Please add the following to your .travis.yml file:

  secure: "aRFPOfnpvnbgJprVgEEpWDrxhTE/qxf2i5GdwIGtXRuYMUzG9T5Lzg/BIlcu4v+r3hrt2MQJMCcqQXlM5gvrjWhQLSBLpZ1dGSU+E9duYq3Rt9+ML9X+6vBn3+VEQe9k8fN+m0xY6WnWnOAKvqfE8CIvpjiGou06SVNhaWuWJjE="

Pro Tip: You can add it automatically by running with --add.

.travis.ymlにDeployGateの設定を追記

.travis.ymlでDeployGateのユーザIDと(上記コマンドで暗号化された)トークンを環境変数に設定。

travis.yml
language: android
env:
  global:
    - DEPLOYGATE_USER=hogelog
    - secure: "aRFPOfnpvnbgJprVgEEpWDrxhTE/qxf2i5GdwIGtXRuYMUzG9T5Lzg/BIlcu4v+r3hrt2MQJMCcqQXlM5gvrjWhQLSBLpZ1dGSU+E9duYq3Rt9+ML9X+6vBn3+VEQe9k8fN+m0xY6WnWnOAKvqfE8CIvpjiGou06SVNhaWuWJjE="

script:
  - ./gradlew uploadDeployGateDebug

GitHubにプッシュ、Travis CIからDeployGateにデプロイ

GitHubのリポジトリとTravis CIを連携させてから上記.travis.ymlをコミットしてプッシュ。

すると以下のようにTravis CIが動き始める。DEPLOYGATE_TOKENも不思議文字列から復号できており、Travis CIからDeployGateへデプロイできていました。

kobito.1401198135.475213.png

備考

上述した設定などは https://github.com/hogelog/android-bookscan-manager に含まれています。