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