LoginSignup
12
7

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-09-04

はじめに

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

参考

12
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
7