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


参考