LoginSignup
28
22

More than 5 years have passed since last update.

Wercker cacheを使ってGradleのビルドを高速化

Last updated at Posted at 2016-06-16

概要

Werckerでは、Workflowsで繋いだpipeline間で共有出来るディレクトリがあり、キャッシュとして利用できます。キャッシュディレクトリのパスは、環境変数WERCKER_CACHE_DIRを参照することで取得できます。Wercker cacheの詳細はこちらのドキュメントから確認できます。

ビルド速度の改善

WERCKER_CACHE_DIRをGradleのキャッシュディレクトリとして利用することでビルド速度を改善できます。Gradleは実行時に--project-cache-dirを用いることで任意のキャッシュディレクトリを指定できます。詳細は付録D Gradle コマンドラインをご覧ください。したがって、以下のように指定することでWERCKER_CACHE_DIRをキャッシュディレクトリとして利用できます。

$ gradle --project-cache-dir=$WERCKER_CACHE_DIR testDebug

Gradle Wrapperを利用する場合

Wrapperを使用する場合、コマンドは以下のようになります。

$ ./gradlew --project-cache-dir=$WERCKER_CACHE_DIR testDebug

Gradle Wrapperを利用する場合は、Werckerの環境変数としてGRADLE_USER_HOMEを定義し$WERCKER_CACHE_DIR/.gradleを指定します。これによってGradleのユーザディレクトリをWERCKER_CACHE_DIR以下に指定でき、WrapperがダウンロードしたGradleが異なるpipeline間で共有されpipeline毎にGradleがダウンロードされることが無くなります。

環境変数は「Settings」の「Environment variables」から定義できます。

wercker_env_variable.png

また、環境変数を使わず--gradle-user-homeオプションを使用することでGradleのユーザディレクトリを指定することが可能です。

$ ./gradlew --project-cache-dir=$WERCKER_CACHE_DIR --gradle-user-home=$WERCKER_CACHE_DIR/.gradle testDebug

WERCKER_CACHE_DIRの有効期限

WERCKER_CACHE_DIRの有効期限がどうなっているかというと、ドキュメントには以下のように書かれています。

At the start of every pipeline run the cache directory is filled with the cached content from the last successful build, if not older than 14 days (and is < 1GB).

したがって、各pipelineは、スタート時にWERCKER_CACHE_DIRにキャッシュをロードし、ロードされるキャッシュは、14日間以内で最後に成功したビルドのもので、キャッシュの容量は1GBまでとなっています。

キャッシュの消去

キャッシュを消去したい場合、「Settings」の「Options」にある「Clear cache」から削除できます。また、Gradle実行時に--recompile-scriptsを付けることでキャッシュが全て破棄され再度コンパイル、保存されます。詳細は「キャッシング」の項目をご覧ください。

wercker_clear_cache.png

参考

28
22
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
28
22