minaはアセットの変更を検出しないため、変更が含まれているgem(Railsエンジン)でのみ発生した場合は、事前コンパイルをスキップするようです。
これまでのところ、チェックインデプロイブロックを使用して事前コンパイルを選択的に強制することにより、この見落としを解決しています。
deploy do
if hash.extras.include?("compile")
invoke :'rails:assets_precompile:force'
else
invoke :'rails:assets_precompile'
end
end
そして走っている
mina deploy[compile]
ミナをジェムのアセットの変更にさらすために行うべき構成はありますか、それともこれはまだ開発されていない機能ですか?
私があなたの言うことを正しく理解しているなら、あなたはいくつかの設定をデプロイセクションに渡す必要があります。
しかし、あなたはいつも通常の方法でそれを行うことができます:
set :force_precompile, -> { true }
上記のように、後でこの設定を使用します。
deploy do
if force_precompile
invoke :'rails:assets_precompile:force'
else
invoke :'rails:assets_precompile'
end
end
それは理にかなっていますか?
コード的に-いいえ。 hash.extras
は「コンパイル」が含まれているため、setディレクティブは必要ありません。
機能的にはそうです。 通常、アセットの変更が検出されたときに「スマート」プリコンパイルを実行する標準のmina deploy
を実行します。 残念ながら、この検出はgemのアセットでは機能しないようです。
環境変数を使用して、アセットのpecompilationを強制できます
mina deploy force_assets=true
正しい環境変数は次のとおりです。 force_asset_precompile=true
最も参考になるコメント
正しい環境変数は次のとおりです。
force_asset_precompile=true