Beschreibung
GitLab ist eine webbasierte DevOps-Plattform, die Funktionen für Versionsverwaltung, Continuous Integration (CI), Continuous Delivery (CD) sowie Projektmanagement bereitstellt. Sie basiert auf Git und erweitert dessen Funktionalität, um den gesamten Softwareentwicklungszyklus zu unterstützen.
GitLab wird häufig von Entwicklungsteams eingesetzt, um den gesamten Entwicklungszyklus zu verwalten – von der Planung und Entwicklung über das Testen bis hin zur Bereitstellung und Überwachung. Die umfassende Plattform ermöglicht es Teams, effizienter zusammenzuarbeiten und die Bereitstellung von Software zu beschleunigen.
In dieser Schulung vermitteln wir theoretische Grundlagen, die durch praktische Übungen gefestigt und vertieft werden. Zusammen mit Tipps aus der Praxis kann das Gelernte direkt in der täglichen Arbeit umgesetzt werden.
Lerninhalte
Einführung
- Funktionalität
- Architektur
- Hosting Optionen
GitLab Tour
- Projekt Organisation: Gruppen, Projekte, Benutzer
- Issue Tracking
- Git Repository Browser
- Merge Requests
- CI/CD Pipelines
GitLab CI/CD
- Warum CI/CD?
- Grundlegender Pipeline Aufbau: Stages, Jobs, Variablen, …
- Runners und Executors
GitLab CI/CD Build stage
- Builden von Beispiel Projekten
- Builden der Dokumentation
- Umgang mit Artefakten
GitLab CI/CD Test stage
- Ausführen von Code Formatierungs- sowie statische Code Analyse Tools
- Ausführen von Unit Tests
- Integration der Testergebnisse und Code Coverage in GitLab
GitLab CI/CD Deploy stage
- Umgang mit Secrets
- Deployment von Artefakten wie z.B. Docker Images oder Python Paketen
- Deployment der Dokumentation via GitLab Pages
- Erstellen von GitLab Releases
Weiterführende Themen
- Merge Request und Release Pipelines
- GitLab Environments und Deployments
- Pipeline Optimierungen mit Templates und Components
- Automatische Aktualisierung von Dependencies mit Renovate
Lernziele
- Erfolgreicher Einsatz von GitLab im modernen DevOps Umfeld
- Effizient Verwendung von GitLab Merge Requests und Pipelines im gesamten Softwareentwicklungszyklus
- Aufbau einer umfangreichen CI/CD Pipeline anhand von Beispiel Projekten
- Visualisierung der Resultate (z.B. Testresultate, Code Coverage, statische Code Analyse) aus der CI/CD Pipeline in GitLab
- Continuous Deployment von Artefakten in die GitLab Registries und GitLab Pages