Projekt Beschreibung
Ich bin zwar mit SVN große geworden. Aber git und das Deployment sind einfach unschlagbar. Damit automatisiere ich fast alles, was in der täglichen Arbeit benötige, damit andere Entwickler nicht nachdenken müssen. Auch UnitTest’s sowie komplette Integrationstest werden mit CI-Runnern automatisch durchlaufen. Mein Testsystem, welches ich damals programmiert habe, besitzt mittlerweile knapp 5 Millionen Integrationstest und läuft asynchron innerhalb 2 Stunden durch.
Git kann ich nur empfehlen selber zu hosten. Am besten nimmt man sich einen Dockerhost und startet einfach ein git Image. Das git würde ich sofort mit einem Systemd Job automatisch Updaten lassen. Somit hat das Entwicklerteam immer die neuste Version. Nun braucht man nur noch 2 bis 3 gitlab Runner. Kurz installiert und schnell registriert warten diese regelrecht auf anstehende Arbeit.
Ich selber hab einen Linux Server angemietet und dort läuft alles im Docker. Mal eben was hochziehen und ausprobieren, kein Problem mehr. Klar gibt es noch Kubernetes, aber dafür braucht man einfach mehr Rechner.
In einem Repository empfehle ich 3 Branch’s anzulegen und diese zu protecten (master, integration und develop). Als Environment würde ich auch immer 3 anlegen: prd, qs und dev. In der .gitlab-ci.yml sollte es mehrere Stage’s geben: build, test und deploy. Ps.: Es gibt auch Variablen die man benutzen kann z.B. für Passwörter oder PrivateKeys ;-).