Parece que mina no detecta cambios de activos y, por lo tanto, omite la precompilación cuando los cambios solo han ocurrido en gemas incluidas (motores Rails).
Hasta ahora, resolvemos este descuido forzando la precompilación de forma selectiva con una verificación en el bloque de implementación.
deploy do
if hash.extras.include?("compile")
invoke :'rails:assets_precompile:force'
else
invoke :'rails:assets_precompile'
end
end
Y corriendo
mina deploy[compile]
¿Se debe realizar alguna configuración para exponer a Mina a los cambios de activos en las gemas o es esta una característica que aún no se ha desarrollado?
Si te entiendo bien, debes pasar algunas configuraciones a la sección de implementación.
pero siempre puedes hacerlo de forma regular:
set :force_precompile, -> { true }
y use esta configuración más adelante como describió anteriormente, como:
deploy do
if force_precompile
invoke :'rails:assets_precompile:force'
else
invoke :'rails:assets_precompile'
end
end
¿Tiene sentido?
En función del código: no. No es necesaria la directiva set, ya que hash.extras
contiene "compilar".
En cuanto a funcionalidad, sí. Normalmente hacemos estándar mina deploy
que realiza la precompilación "inteligente" cuando se detectan cambios en los activos. Desafortunadamente, parece que esta detección no funciona para activos en gemas.
puede usar variables env para forzar las compilaciones de activos
mina deploy force_assets=true
Solo un aviso de que la variable env correcta es: force_asset_precompile=true
Comentario más útil
Solo un aviso de que la variable env correcta es:
force_asset_precompile=true