heroku

Recompila babosa Heroku sin cambio de empuje o configuración



heroku panel (9)

Hay un complemento heroku para esto.

$ heroku plugins:install heroku-releases-retry Installing plugin heroku-releases-retry... done $ heroku releases:retry Retrying v16 on ⬢ murmuring-lowlands-3398... done, v17

Me pregunto si hay una manera de obligar a Heroku a recompilar el slug sin presionar nuevas confirmaciones y / o actualizar las variables de configuración.

¿Por qué querría hacer esto ?:

Estoy usando la pila Cedar en Heroku para una aplicación Rails 3.2, y estoy teniendo problemas con los rake assets:precompile falla de la tarea de rake assets:precompile (solo durante la compilación --- luego funciona bien con una heroku run ). Sospecho que esto se debe a que ciertas variables de entorno no están disponibles durante el tiempo de compilación de slug, y creo que los heroku labs:enable user_env_compile la característica experimental heroku labs:enable user_env_compile lo resolverá.

Sin embargo, con la función user_env_compile activada, los cambios de configuración no desencadenan una recompilación del slug, y mi código no ha cambiado, por lo que no tengo ningún nuevo commit para enviar.

Por supuesto, podría presionar un commit "ficticio" con un cambio trivial, que es probablemente la respuesta más simple --- pero me pregunto si hay un comando heroku que me permita recompilar directamente el slug.

¡Gracias!


Heroku ha lanzado un complemento que pide: https://github.com/heroku/heroku-repo

Para instalarlo:

$ heroku plugins:install heroku-repo

Para forzar una reconstrucción:

$ heroku repo:purge_cache -a appname $ heroku repo:reset -a appname $ git push heroku


La compilación Slug se invoca con un gancho pre-recepción de git, por lo que la única forma de volver a compilar es presionar un nuevo compromiso.

Para más información, consulte este artículo sobre Heroku para el compilador slug . Discutió el uso del gancho de pre-recepción para invocar el proceso de compilación slug bajo el encabezado Compilación.



Mi enfoque general es hacer:

git commit --amend -C HEAD git push heroku:master -f

No estoy seguro de hacer esto en producción sin estar seguro, ya que técnicamente reescribe el último compromiso, pero no debería causar ningún problema en teoría. Sin embargo, está perfectamente bien para cuando estás probando cosas en etapas.

Como una ventaja adicional ya que la mayoría de las personas tiene problemas al usar Vim para editar los mensajes de confirmación, SHIFT-ZZ guardará rápidamente y saldrá del mensaje de confirmación sin realizar ningún cambio en él.

En una nota relacionada, estoy ligeramente sorprendido Heroku todavía no tiene esta característica. A menudo he visto a Heroku no desplegar debido a problemas de su parte.

Gracias a Michael Mior por la idea de usar -C HEAD para evitar abrir un editor.



Retire la rama y vuelva a empujarla. No es necesario usar un complemento.

git push heroku :master git push heroku master


git push --force debería funcionar :)