160 votes

Recompiler Heroku slug sans pousser ou de changer de config

Je me demandais si il existe un moyen de forcer Heroku de recompiler le slug sans imposer de nouvelles validations et/ou de mettre à jour les variables de configuration.

Pourquoi voudrais-je à faire?:

Je suis en utilisant le Cèdre pile sur Heroku pour Rails 3.2 application, et je vais avoir des problèmes avec l' rake assets:precompile de la tâche de l'échec (lors de la compilation uniquement --- plus tard, il fonctionne très bien avec un heroku run). J'ai fortement l'impression que c'est à cause de certaines variables d'environnement ne sont pas disponibles lors de slug moment de la compilation, et je pense que l' heroku labs:enable user_env_compile fonctionnalité expérimentale permettra de résoudre cette.

Cependant, avec l' user_env_compile fonction activée, les modifications de configuration ne déclenchent pas une recompilation de la limace, et mon code n'a pas changé, donc je n'ai pas de nouvelles s'engage à pousser.

Bien sûr, je pourrais pousser un "dummy" s'engager dans un banal changement, ce qui est probablement la réponse la plus simple --- mais je me demandais si il y a une commande heroku qui me permettra de directement recompiler le slug.

Merci!

265voto

Brad Koch Points 4046

La solution la plus simple pour le moment est de pousser un vide s'engager.

git commit --allow-empty -m "empty commit"
git push heroku master

Mise à jour: Heroku prend désormais en charge reconstruire sans faux s'engage, voir khamaileon de réponse.

100voto

nmott Points 4216

Slug compilation est invoquée avec un git pré-recevoir crochet, de sorte que le seul moyen de recompiler est de pousser un nouveau commit.

Pour voir l'intégralité de cet article sur Heroku pour le slug compilateur. Il a discuté de l'utilisation de la pré-recevoir crochet d'invoquer la limace processus de compilation en vertu de la Compilation à la tête.

Edit:

Il est maintenant possible de reconstruire sans un push à l'aide de la heroku-repo add-on:

heroku plugins:install https://github.com/heroku/heroku-repo.git
heroku repo:rebuild -a appname

Grâce à Refael Ackermann dans les commentaires pour remarquer cette solution.

34voto

Chris Nicola Points 3699

Mon approche générale est de faire:

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

Pas sûr que je le ferais dans la production, sans être assuré, comme il le fait techniquement réécrire le dernier commit, mais il ne devrait pas causer des problèmes dans la théorie. Il est parfaitement bien pour quand vous êtes à tester des choses dans la mise en scène.

Comme un bonus supplémentaire, puisque la plupart des gens sont problème à l'aide de Vim pour éditer des messages de commit SHIFT-ZZ rapidement enregistrer et quitter le message de commit pour vous, sans faire aucune modification.

Sur une note connexe, je suis légèrement choqué Heroku ne fonctionne toujours pas cette fonctionnalité. J'ai souvent vu des Heroku ne parviennent pas à déployer en raison de problèmes sur leur fin.

16voto

khamaileon Points 71

Vous pouvez utiliser le repo:reconstruction de la commande si le heroku-repo add-on.

heroku repo:rebuild -a appname

https://github.com/heroku/heroku-repo

9voto

Kostia Points 2867

Regarde comme ce n'est pas encore disponible. Toutefois, une demande de fonctionnalité a être ouvert sur le heroku dépôt github

Il mentionne également "une autre façon de construire qui n'est pas tributaire de l' git push"

https://github.com/ddollar/heroku-anvil

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X