Was ist eine gute Bereitstellungsstrategie für die Verwendung mit Git + Heroku (Ruby on Rails)?Gute Git-Verteilung mit Heraku?
Derzeit ist die Art, wie ich mit meiner Herkunft Git-Repository arbeiten: Alle Funktionen (oder ‚Geschichten‘) werden zuerst geprüft, wie verzweigt, dann mit Master verschmolzen bekommen und schob zum Ursprung.
Alles, was zum Ursprung/Master geschoben wird, löst ein Skript aus, das den neuen Rails-Code zum Staging-Bereich (einfacher Rails-Webserver) bringt.
Wenn es an der Zeit ist, eine neue Produktionsversion nach Heroku zu schicken, sollte ich einen neuen Zweig (etwas wie production_version_121) erstellen und das irgendwie zu Heroku bringen?
Idealerweise würde ich gerne auswählen, welche Features aus früheren Entwicklungsversionen ich in den Produktionszweig aufnehmen sollte ... testen Sie es und wechseln Sie zu Heroku.
Zum Beispiel möchte ich nicht wollen, dass der neueste Code in Produktion geht. Ich möchte Feature "a", an dem ich gearbeitet habe, und Feature "c", das irgendwie in die Produktion integriert wurde, ohne das experimentelle Feature "b", das mehr Debugging benötigt.
N.B. Ich werde zunächst versuchen, capistrano zu vermeiden und etwas manuell arbeiten zu lassen.
Gedanken? Best Practices?
Danke David! Ich war neugierig, ob es jemand so machte. Richtig Ich bin Ich benutze nur meine Fernbedienung "Master" als die Produktion .. so zu deploy Ich mache einfach weiter: git push heroku (wenn die Zeit kommt) Problem ist, ich habe noch keine Funktionen, die ich will zu wählen und zu wählen, um in eine Produktionsbereitstellung noch einzuschließen ... Ich erwarte die Notwendigkeit, in diesem Fall zu erscheinen, muss ich einen legitimen "Produktionszweig" auf meinem Remote-Git-Server beginnen. Das nächste Mal probiere ich es mit: git push heroku production: Meister, ich nehme an, dass es sich beschweren wird und ich muss die "force" -Flagge benutzen, damit Heroku wegwirft, was es verfolgte? – Zaqintosh
Meine einzige andere Frage ist, verwenden Sie Ihren Remote-Master für irgendetwas? Oder arbeiten Sie in Zweigniederlassungen und stellen/verschmelzen zu/von Filialen in 100% der Fälle? – Zaqintosh
Ob Sie forcieren müssen oder nicht, hängt davon ab, ob "Produktion" direkt von dem abgeleitet ist, was derzeit auf dem Remote-Master vorhanden ist. Gemcutter verwendet den "Master" Zweig als Trunk. Hier werden die neuesten Änderungen vorgenommen. Funktionszweige werden erstellt und dann wieder in den Trunk zusammengeführt. Manchmal werden einzelne Commits oder Feature-Zweige in den Produktionszweig eingebunden, manchmal wird Master direkt zusammengeführt, wenn wir alles wollen. –