Wercker v2(Ewok)でSpringBootのビルド時間を短縮する

ブログには久しぶりの登場、浅野でございます。 戻り鰹の漁にいっており、ブログが更新できておりませんでした。

さて、今回のネタは久しぶりのWerckerネタ。ターゲットは以下の条件全てに当てはまる方です。

  • JVM系の言語を使っている
  • Werckerをv1のころから使っていて、v2へ移行している
  • Werckerは、v1ではキャッシュがあってビルドで余分な時間かかんなかったのになーと懐かしんでいる

これで大体わかるかと思うのですが、v2(Ewok)でキャッシュが使えるようになってました。 情報ソースは公式サイトのこちら。(Werckerをキーワードに検索するとV1の情報とごっちゃになってしまってわかりづらいので v2の情報だけに絞り込むには、ewok をキーワードに追加するといいらしいです)

キャッシュを有効にする

環境変数 $WERCKER_CACHE_DIR のパスがキャッシュとして使えるディレクトリです。 このディレクトリ配下に、gradleがダウンロードするファイルを格納すると、次回以降のビルド時にはダウンロードが省略されてビルド時間が短縮されます。 その設定はこんな感じ。

- script:
    name: setup gradle local cache
    code: |-
        mkdir -p $WERCKER_CACHE_DIR/.gradle
        ln -sf $WERCKER_CACHE_DIR/.gradle ~/.gradle

こうする事で、SpringBootベースのWebアプリケーションのビルド時間が約4.5分から約2.5分と2分前後の短縮になりました。 この $WERCKER_CACHE_DIR がキャッシュ用ディレクトリになるのは、v1でも同じでした。過去に蓄積したノウハウがそのまま使えるのは嬉しい限りですね。 (前の案件は、Wercker v1を使っていて、その時にwerckerでmavenのpomをキャッシュする方法を参考にSBTのビルド時間を短縮した、というのがあり、今回もそれをほぼそのまま踏襲できました。)

この手順は、今回題材にしたgradle以外のビルドツールでも使えるかと思います。 ただ公式サイトに書いてある通り、 npm-install, bundle-install, pip-install に関してはデフォルトでキャッシュが効くので対応不要です。

それでは、みなさんもよきCIライフを!

コメント(0)