RailsのCIでassets絡みのテストを速くするメモ
RailsのCIが遅くて辛かったので幾つかのテストでprofileを取ってみたところ、assetsを読み込む処理にすごく時間がかかっているようだった。 そういうパターンでは以下の手順でお手軽に高速化できたのでメモ
やったこと
- CIがrspecを走らせる前にassets:precompileを行う
- CIのときだけ
config.assets.compile = false
が動くようにconfig/environments/test.rb
に設定を追加する
考えたら当たり前だけどコレだけでかなり早くなった。 (試した環境では40分ぐらいかかっていたテストが25分に短縮された。)
assetsが絡むテストの割合が少ない場合はassets:precompile
のオーバーヘッドでむしろ遅くなったりも考えられるが、一回実行するだけでわかるので試しやすい。