概要
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」から定義できます。
また、環境変数を使わず--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を付けることでキャッシュが全て破棄され再度コンパイル、保存されます。詳細は「キャッシング」の項目をご覧ください。

