7 Git als Fundament für CI/CD

Git ist das unverzichtbare Fundament für jeden CI/CD-Workflow, da es als zentrale Source of Truth fungiert. Alle relevanten Codeänderungen, Commits und Versionen werden in Git gespeichert und verwaltet. Dadurch wird Git zur verlässlichen Quelle, auf die sich alle Prozesse in der CI/CD-Pipeline stützen.

7.1 Git als Source of Truth

Git stellt sicher, dass es stets eine einzige, zentrale Wahrheit gibt, die den aktuellen Zustand des Codes widerspiegelt. Alle Entwickler arbeiten mit derselben Version des Codes, und jede Änderung wird in einem unveränderlichen Verlauf dokumentiert. Dies bietet:
- Transparenz: Jeder Commit und jede Änderung kann vollständig nachvollzogen werden, inklusive des Autors, der Zeit und der Gründe für die Änderung.
- Sicherheit: Wenn ein Problem im Code auftritt, kann leicht auf eine frühere Version zurückgegriffen werden, um den Fehler zu beheben oder die Änderung rückgängig zu machen.
- Konsistenz: In der CI/CD-Pipeline arbeiten alle automatisierten Prozesse (Build, Test, Deployment) mit der Version des Codes, die in Git gespeichert ist. Dadurch gibt es keine Unstimmigkeiten oder unterschiedliche Codeversionen, die getestet und deployed werden.

7.2 Git als Trigger für CI/CD

Ein zentraler Vorteil von Git ist, dass es in CI/CD-Systeme eingebettet werden kann, um automatisierte Prozesse auszulösen. Jedes Mal, wenn ein neuer Commit, ein Merge Request oder ein Tag in Git erstellt wird, startet die CI/CD-Pipeline. Dies stellt sicher, dass jede Codeänderung sofort geprüft, getestet und gegebenenfalls in eine produktionsfähige Umgebung ausgerollt wird.

Beispiel für einen CI/CD-Workflow:
1. Ein Entwickler pusht eine Änderung in das Git-Repository.
2. GitLab CI/CD erkennt den neuen Commit und startet automatisch eine Pipeline.
3. Die Pipeline führt Build-, Test- und eventuell Deploy-Schritte durch, basierend auf den im Git gespeicherten Änderungen.

Git sorgt dafür, dass die Pipeline auf der aktuellen, gültigen Version des Codes basiert, und verhindert so, dass veraltete oder inkonsistente Versionen verwendet werden.

7.3 Versionierung und Nachverfolgbarkeit

Git bietet auch eine robuste Möglichkeit zur Versionierung des Codes. Jeder Commit ist eindeutig und unveränderlich, was eine lückenlose Nachverfolgung des gesamten Entwicklungsverlaufs ermöglicht. Bei Problemen kann der exakte Commit identifiziert werden, der die Änderung verursacht hat, und es kann problemlos auf eine vorherige, funktionierende Version des Codes zurückgegriffen werden.

7.4 Git und die Verlässlichkeit der CI/CD-Prozesse

Da Git alle Änderungen festhält, können Entwickler darauf vertrauen, dass die automatisierten Prozesse auf einer stabilen und verlässlichen Quelle basieren. Git fungiert somit als Sicherheitsnetz und ermöglicht es, kontinuierlich auf den aktuellen Stand des Codes zuzugreifen, ohne dass die Stabilität des Entwicklungsprozesses beeinträchtigt wird.