Me pregunto si hay una manera de obligar a Heroku a recompilar la babosa 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 tengo problemas con la rake assets:precompile
falla de la tarea (solo durante la compilación --- más tarde funciona bien con a 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 la heroku labs:enable user_env_compile
función experimental resolverá esto.
Sin embargo, con la user_env_compile
función activada, los cambios de configuración no desencadenan una recompilación de la babosa, y mi código no ha cambiado, por lo que no tengo nuevas confirmaciones para impulsar.
Por supuesto, podría impulsar una confirmación "ficticia" 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 la babosa.
¡Gracias!
Respuestas:
La compilación de Slug se invoca con un gancho de pre-recepción de git, por lo que la única forma de recompilar es presionar una nueva confirmación.
Para completar, vea este artículo sobre Heroku para el compilador de slug . Discutió el uso del gancho de pre-recepción para invocar el proceso de compilación slug bajo el encabezado Compilación.
fuente
repo:rebuild
ya no es un comando válido en el complemento, como se puede ver aquí: github.com/heroku/heroku-repo/commit/…La solución más simple por ahora es empujar una confirmación vacía .
fuente
git reset HEAD~; git push -f heroku master
. Incurre en el costo de tiempo de otro despliegue de Heroku, pero limpia el historial FTW.~/.profile
agregar esto:alias heroku-rebuild="git reset HEAD~; git push -f heroku master"
oalias heroku-rebuild="git commit --allow-empty -m 'empty commit' && git push heroku master"
simplemente puede escribirheroku-rebuild
Mi enfoque general es hacer:
No estoy seguro de que haría esto en producción sin estar seguro, ya que técnicamente reescribe el último commit pero no debería causar ningún problema en teoría. Sin embargo, está perfectamente bien cuando estás probando cosas en la puesta en escena.
Como una ventaja adicional ya que la mayoría de las personas tienen problemas al usar Vim para editar mensajes de confirmación
SHIFT-ZZ
, guardará y saldrá rápidamente del mensaje de confirmación por usted sin hacer ningún cambio.En una nota relacionada, estoy un poco sorprendido de que Heroku todavía no tenga esta característica. A menudo he visto que Heroku no se implementa debido a problemas de su parte.
Gracias a Michael Mior por la idea de usar
-C HEAD
para evitar abrir un editor.fuente
git commit --amend -C HEAD
para evitar abrir un editor y mantenga el mensaje de confirmación igual.Heroku ha lanzado un plugin que pregunta: https://github.com/heroku/heroku-repo
Para instalarlo:
Para forzar una reconstrucción:
fuente
Actualización: heroku repo: reconstruir ha sido eliminado .
Heroku tiene una API de compilación que puede usar, consulte: Compilación y lanzamiento con la API
Puede usar el comando repo: rebuild si el complemento heroku-repo .
https://github.com/heroku/heroku-repo
fuente
Parece que esto aún no está disponible. Sin embargo, se ha abierto una solicitud de función en el repositorio heroku github
También menciona "una forma alternativa de construir que no depende de
git push
"https://github.com/ddollar/heroku-anvil
fuente
Hay un complemento heroku para esto.
fuente
Retire la rama, luego vuelva a empujarla. No es necesario usar un complemento.
fuente
git push --force
Deberia trabajar :)fuente