bitrise がいつの間にか .gradle をキャッシュしてた

以前、 iOS アプリの bitrise workflow を cache を用いて改善した takorras.hatenablog.com

Android アプリも CI サービスに bitrise を使っているので、同様の対応を行ってみる

bitrise cache を使う

以前の記事の通り、 cache-pull step と cache-push step を適切に追加する

gem が cache され当初の目的通り時間が短縮されたが、 cache size が900MB ほどに膨れていることに気が付いた 👀
とはいえ、 gem だけでここまでのサイズになることはなさそう...

settings -> manage build cache から cache をダウンロードできるので、そこから確認する devcenter.bitrise.io

gradle がキャッシュされてて、サイズが 800MB 以上ある... f:id:takorras:20201110225310p:plain

gradle cache

どうやら cache-pull / cache-push step で Android Build step を挟んだ時に勝手に gradle をキャッシュするらしい
devcenter.bitrise.io

今回 Android Build step は使ってなくて Gradle Runner step だったけど、とりあえず .gradle をキャッシュするような仕組みになっているのかな...?

cache-push のログを見ても、勝手に config に追加されている気配がある(自分で設定してるのは上の2行だけ) f:id:takorras:20201110231411p:plain

.gradle って何者?については gradle のドキュメントに概要が書いてある docs.gradle.org

The Gradle user home directory ($USER_HOME/.gradle by default) is used to store global configuration properties and initialization scripts as well as caches and log files.

プロジェクトに依らない gradle の全体的な設定とか cache を諸々を配置しているらしい
また、このディレクトリ内も定期的に cleanup してくれるみたい

ということで、これはそのまま cache させて活用してみる

.gradle を毎回作成していたためか、 cache によって Gradle Runner step を使っていた箇所が 2, 3分短縮された😊