Engine Yard Cloud の assets precompile

Engine Yard Cloud は assets に変更がないときは precompile をスキップしてくれてとても素敵なのですが、変わった場所に assets があると変更を検出できずにスキップされすぎてしまいます。

デフォルトでは以下のファイル/ディレクトリをチェックしています:

これ以外の場所に assets があるとマズイわけです。

チェック対象を追加するには config/ey.ymlassets_dependencies にパスを足してやります。今回はサブディレクトリにある engine の assets を見てもらうように設定してみました。

defaults:
  asset_dependencies:
    - app/assets
    - lib/assets
    - vendor/assets
    - Gemfile.lock
    - config/routes.rb
    - config/application.rb
    - engines/foo/app/assets
    - engines/foo/vendor/assets

話変わって、強制的に precompile を再実行してやりたいケースがたまーにあります。先ほどのドキュメントでは ey.ymlprecompile_unchanged_assets: true と設定する方法が紹介されていますが、いちいちファイルを書き換えるのも面倒ですよね。

そんなときは ey deploy --config です。

$ ey deploy --config precompile_unchanged_assets:true
Loading application data from Engine Yard Cloud...
Using current HEAD branch "master".
Beginning deploy...
(snip)
+    45s  ~> Preparing shared resources for release.
+    46s  ~> Precompiling assets without change detection. (precompile_unchanged_assets: true)

もちろん ey.yml に設定できるオプションならなんでも使えます。ちょっとした Tips ですが、覚えておくと便利です (よく忘れる)。