Android
gradle

Gradleで依存ライブラリの最新バージョンをチェックする

More than 1 year has passed since last update.

はじめに

Google純正ライブラリやOSSライブラリのバージョンアップを逐一追いかけるのが大変だなと思ってたところ、以下の記事を見つけたので実際にやってみました。
CIを使って、定期的にバージョンをチェックしてSlackに通知できるようになれば楽になるはず。
Gradle PluginとCIと俺

必要なもの

セットアップ手順

Gradle Versions Plugin

Gradleの設定は以下を参照。
gradle-versions-plugin Usage

./gradlew dependencyUpdates

これで上記のコマンドで、タスク実行することは可能だが、alpha版のライブラリとも比較されます。
なので、Component Selection Rules. でフィルタをかける。

app/build.gradle
dependencyUpdates.resolutionStrategy = {
    componentSelection { rules ->
        rules.all { ComponentSelection selection ->
            boolean rejected = ['alpha', 'beta', 'rc', 'cr', 'm'].any { qualifier ->
                selection.candidate.version =~ /(?i).*[.-]${qualifier}[.\d-]*/
            }
            if (rejected) {
                selection.reject('Release candidate')
            }
        }
    }
}

Gradle Slack Plugin

Gradleの設定は以下を参照。
gradle-versions-plugin Usage

バージョンチェックのタスク(dependencyUpdates)が実行されたときに、Slack通知するようにする。

app/build.gradle
slack {
    url 'slack WebHook URL'
    dependsOnTasks 'dependencyUpdates'
    title 'my app name'
    enabled = isCi
}

CI環境のみでSlack通知を行いたかったので、isCiの部分は以下のようにします。

app/build.gradle
def isCi = "true" == System.getenv("CI")

大抵のCIサーバーはこの環境変数が入っているらしいです。
今回、Jenkinsを使ったのですが、この環境変数がなかったため新たに追加しました。

あとは、Jenkinsでジョブを作って実行。

./gradlew assembleRelease
./gradlew dependencyUpdates

参考