Entwickeln Lokal <-> Server <-> Github
-
Hallo!
Mit zwei Freunden fange ich ein Web-Projekt an und wir sind uns unsicher, wie genau wir die gesamte Umgebung gestalten sollen. Wir haben einen V-Server (Linux Debian mit Root-Zugang) und zusätzlich GitHub zum Hosten.
Wir fangen gerade mit einem Prototypen an und die Frage ist nun, wo der Quelltext bearbeitet wird - lokal oder remote auf dem Server. Zu einem Commit/Push nach GitHub kann man ja auch einen Hook einbauen, der sofort deployt.
Hat jemand Tipps oder Erfahrungen, wie man so gut arbeiten kann? Es gibt so viele Faktoren wie die Zeit zwischen Abspeichern des Codes und Austesten-können der Änderung, wie man Branches handhabt und dass alle immer den aktuellen Code haben.
Vielen Dank
fdfdg
-
Ich würde sowas machen:
- Git-Repo auf den Server.
- Irgendeinem Deployment-Tool (zB. Capistrano, vlad, oä.) sagen, wo das Git-Repo zum Code liegt.
- Frische Versionen in das Git-Repo auf eurem Server pushen und dann einfach mit dem Deployment-Tool deployen lassen.
- Dh. in der Regel: Neuen Code aus dem Git-Repo in das Rootverzeichnis eurer Anwendung auschecken lassen, DB-Änderungen vornehmen lassen (Migrations), ggf. Anwendung neustarten lassen.
Ich mag dabei Tools, die zB. deployte Versionen mit Timestamp auschecken und jederzeit wieder ein Rollback zu alten Versionen erlauben. Bei Vlad gibt es zB. einen Symlink "current", der immer auf die aktuelle Version zeigt und ganz einfach auf neue Versionen umgebogen werden kann und die letzten n deployten Versionen bleiben verfügbar.
-
fdfdg schrieb:
Wir fangen gerade mit einem Prototypen an und die Frage ist nun, wo der Quelltext bearbeitet wird - lokal oder remote auf dem Server.
Ach ja, dazu noch: Immer lokal. Lokal editieren, lokal testen. (Mit Vagrant oä. lassen sich bequem virtuelle Maschinen mit exakt demselben Softwarestack, der auf eurem Server läuft, ausstatten.)
Wenn die Änderung bestimmt läuft, auf den Server pushen und die frische Version deployen. Direkt am Server herumeditieren ist auf Dauer tödlich.
Zu einem Commit/Push nach GitHub kann man ja auch einen Hook einbauen, der sofort deployt.
Ich bin zwar großer GitHub-Fan, würde das aber in diesem Fall gar nicht verwenden. Wenn ihr ohnehin einen Vserver habt, dann packt euer zentrales Git-Repo einfach direkt da drauf. Immer schön Feature-Branches verwenden, dann kommt ihr euch auch nicht mit irgendwelchen Konflikten in die Quere.
-
Super, das klingt gut, ich danke Dir!
Dann werden wir auf jeden Fall lokal editieren und testen. Die Tools schaue ich mir mal an.