LoginSignup
54
51

More than 5 years have passed since last update.

CI 上で assets:precompile をする時になるたけ早くする

Posted at

Circle CI でも travis-ci でもなんでもいいんですが、とにかくデプロイ用に用意する assets:precompile を早くしたいというあなたむけの記事です。

bin/rake assets:precompilepublic/assets 以下に配信用の assets を吐き出し、 manifest.json なども配置されますが、この public/assets ディレクトリをキャッシュするだけでは、次回の bin/rake assets:precompile は早くなりません

継続的な bin/rake assets:precompile の実行を高速化するには public/assets だけでなく、 tmp/cache/assets も保存しておき、 assets:precompile 実行前に再配置しておく必要があります。

これにドはまりすると『CI 一回実行するのに、 assets:precompile だけで8分かかる……』というような悲しい Tweet をするハメになるので気をつけてください。特に、 browserify-rails などを使っている時に強烈に効きます。

僕の所はこれやるだけで8分かかってた assets:precompile が(変更がなければ)3秒で終わるようになったので、はちゃめちゃに効くと思います。

騙されたと思ってやってみてください。

ちなみに Circle CI で上記のことを実現するには、 circle.yml

dependencies:
  cache_directories:
    - 'public/assets'
    - 'tmp/cache/assets'

と書き足すといいです。

54
51
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
54
51