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 la rake assets:precompile
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 le heroku labs:enable user_env_compile
fonctionnalité expérimentale permettra de résoudre cette.
Cependant, avec la 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!
- Rien dans le heroku client CLI?
- Pas une réponse directe, mais il est toujours sage de document de la dépendance de tels changements en s'appuyant sur SAAS, etc. Mon conseil est d'ajouter une entrée à un CHANGELOG, quelque part, de mentionner que vous maintenant compter sur cette fonctionnalité, et de pousser la modifier afin de déclencher une reconstruction de la limace.
Vous devez vous connecter pour publier un commentaire.
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 la 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.
! `repo:rebuild` is not a heroku command.
, puis j'ai regardé à l'aide derepo
assurez-vous que le plugin est installé et je pense que la nouvelle commande (pas sûr à 100% sur ce bien) estheroku repo:purge_cache -a appname
repo:rebuild
n'est plus une commande valide dans le plug-in, comme on peut le voir ici: github.com/heroku/heroku-repo/commit/...La solution la plus simple pour le moment est de pousser un vide s'engager.
git reset HEAD~; git push -f heroku master
. Il assume le coût en temps de l'autre Heroku déployer, mais propre histoire FTW.~/.profile
ajouter ceci:alias heroku-rebuild="git reset HEAD~; git push -f heroku master"
oualias heroku-rebuild="git commit --allow-empty -m 'empty commit' && git push heroku master"
de sorte que vous pouvez simplement taperheroku-rebuild
Mon approche générale est à faire:
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 si les.
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.
Grâce à Michael Mior pour l'idée d'utiliser
-C HEAD
pour éviter l'ouverture d'un éditeur.git commit --amend -C HEAD
pour éviter l'ouverture d'un éditeur et de garder le message de commit la même.Heroku version d'un plugin que ce qui est demandé: https://github.com/heroku/heroku-repo
Pour l'installer:
À la reconstruction:
Mise à jour: heroku repo:reconstruction a été supprimé.
Heroku a une accumulation de l'API que vous pouvez utiliser, voir: Bâtiment et en Libérant de l'Aide de l'API
Vous pouvez utiliser le repo:reconstruire commande si le heroku-repo add-on.
https://github.com/heroku/heroku-repo
Ressemble ce n'est pas encore disponible. Cependant, un demande de fonctionnalité a être ouvert sur le heroku dépôt github
Il mentionne aussi "une autre façon de construire qui n'est pas tributaire de l'
git push
"https://github.com/ddollar/heroku-anvil
Il y a un heroku plugin pour cela.
Supprimer la branche, puis re-pousser. Pas besoin d'utiliser un plugin.
git push --force
devrait fonctionner 🙂