Arbeiten mit GitLab

Git-Workflow & Deployment

Vom Feature-Branch bis zum Produktiv-Deployment: committen, pushen, mergen und ausrollen.

Auf dieser Seite

Die Plattform nimmt dir das Deployment komplett ab. Du arbeitest ganz normal mit Git – alles, was nach dem Push passiert, ist bereits eingerichtet.

Das Branch-Modell

Du brauchst lokal nur zwei Arten von Branches:

  • main – der Hauptbranch. Was hier landet, wird automatisch auf den Dev-Server ausgerollt.
  • Feature-Branches – für jede Änderung ein eigener Branch, der per Merge Request zurück in main geht.
flowchart LR
  feature["Feature-Branch"] -->|"Merge Request"| mainBranch["main"]
  mainBranch -->|"Pipeline baut Docker-Image"| image["Docker-Image"]
  image -->|"automatisch"| devServer["Dev-Server"]
  image -->|"manueller Klick:<br/>publish-docker-prod"| prodServer["Prod-Server"]

Schritt für Schritt: eine Änderung entwickeln

  1. Feature-Branch anlegen:
git checkout main
git pull
git checkout -b feature/mein-feature
  1. Änderungen machen, committen und pushen:
git add .
git commit -m "feat: mein Feature"
git push -u origin feature/mein-feature
  1. In GitLab einen Merge Request nach main erstellen. Die Pipeline baut und prüft deinen Branch automatisch.
  2. Merge Request mergen – fertig. Den Rest übernimmt die Plattform.
Tipp
Kleine, fokussierte Merge Requests sind leichter zu prüfen und schneller deployt als ein großer Branch, der wochenlang lebt.

Was nach dem Merge passiert (Dev)

Sobald dein Code in main ist, läuft die Pipeline des Repositories automatisch durch:

  1. update-version – berechnet die neue Versionsnummer.
  2. build-docker – baut das Docker-Image und legt es in der Registry ab.
  3. publish-docker-dev – trägt den neuen Image-Tag in configurations/dev/versions.yaml deines gitops-configuration-Repositories ein.
  4. Das GitOps-Repository deployt die neue Version daraufhin per Ansible auf den Dev-Server.

Du musst nichts tun – ein paar Minuten nach dem Merge ist der Stand auf Dev live. Den Fortschritt siehst du in GitLab unter CI/CD → Pipelines (im Code-Repository und im gitops-configuration-Repository).

Produktion ausrollen

Das Prod-Deployment ist absichtlich ein manueller Schritt – derselbe Build, der schon auf Dev läuft, wird per Klick freigegeben:

  1. Öffne in GitLab dein Code-Repository und gehe zu CI/CD → Pipelines.
  2. Öffne die Pipeline des main-Stands, den du ausrollen willst.
  3. Starte den Job publish-docker-prod über den Play-Button.

Der Job trägt den Image-Tag in configurations/prod/versions.yaml ein, und das GitOps-Repository rollt die Version auf den Prod-Server aus.

Achtung
publish-docker-prod veröffentlicht genau den Stand der jeweiligen Pipeline. Prüfe vor dem Klick, dass die Änderung auf Dev wie erwartet funktioniert.

Feature-Branches und Vorschau

Auch auf Feature-Branches baut die Pipeline ein Docker-Image (publish-docker-dynamic). So lässt sich ein Branch-Stand bei Bedarf in einer eigenen Umgebung testen, bevor er gemergt wird.

Siehe auch