Aktualisierung des GitLab-Dienstes

Für eine verteilte Versionskontrolle bei der Softwareentwicklung kann die Software Git zum Einsatz kommen. Mit dem an der TU Chemnitz angebotenen Dienst GitLab lassen sich Git Repositiers zentral auf Servern der TU Chemnitz anlegen, verwalten und anderen Nutzenden des Dienstes zur Mitarbeit freigeben. Nützliche Funktionen wie Bugtracking, Merge Requests und ein Projekt-Wiki unterstützen die Arbeit an den Softwareprojekten. Der Dienst steht auch anderen sächsichen Hochschulen zur Verfügung.

Geplantes Update

Am 17. und 18. Juni wird der angebotene Dienst ein Update erhalten. Die Aktualisierung des GitLab-Dienstes erfolgt in zwei Schritten:

  • Dienstag 17.06.2025 – 20 bis 21 Uhr: Aktualisierung des Betriebssystems
  • Mittwoch 18.06.2025 -– 20 bis 21 Uhr: Aktualisierung von GitLab

Das aktuelle Update von GitLab 18.0 bringt eine Reihe kleinerer Verbesserungen mit:

  • das Beenden von Pipelines lässt sich erzwingen
  • bessere Steuerung von Pipelines über inputs in Ergänzung zu Variablen
  • Merge-Request-Dateiübersicht zeigt nun redundante Änderungen
  • neue GitLab-Pages-Templates für Projekte

GitLab Runner und Pipelines

GitLab bietet Werkzeuge, um sich wiederholende Tätigkeiten bei der Softwareentwicklung zu automatisieren. Ein Beispiel sind automatisierte Tests, die bei jeder Codeänderung auf GitLab Runnern ausgeführt werden. Gitlab Runner sind Server, die die automatisierten Aufgaben ausführen; Pipelines definieren die Schritte, die ausgeführt werden.

Hin und wieder kann es vorkommen, das Jobs im Cancelling-Status stecken bleiben. Nun haben Maintainer die Möglichkeit, über die Pipeline-Übersicht deren Beendigung zu erzwingen.
Weiterhin wurde die Darstellung von Job-Graphen in Pipelines verbessert und die Runner-Konfiguration neu gestaltet.

Steuerung der Push-Berechtigung in Paket-Repositiories

Neben automatisierten Tests können in Pipelines auch andere Aufgaben ausgeführt werden, z.B. das Zusammenstellen der Software ein Pakete. Diese Pakete können dann im Gitlab in einer Registry zum Download bereitgestellt werden.

Für das Build-Tool Maven, den Paketmanager npm und PyPI-Package-Registries können nun Push-Regeln definiert werden. Über Suchmuster mit Wildcards (Platzhalter) lassen sich Regeln erstellen, mit denen das Veröffentlichen von Paketen für einzelne Rollen gesteuert bzw. eingeschränkt werden kann.

Bessere Steuerung von Pipelines über inputs anstelle von Variablen

Variablen können in den Gruppen oder Projekt-Einstellungen sowie in der .gitlab-ci.yml definiert werden. Sie unterstützen keine Typisierung und Validierung und lassen sich nicht zur Laufzeit verändern.

Inputs wurden eingeführt, um die Interaktivität und Flexibilität von Pipelines zu verbessern und bieten einige entscheidende Vorteile gegenüber der ausschließlichen Verwendung von Variablen:

  • Sie ermöglichen es, zur Laufzeit der Pipeline Entscheidungen zu treffen und Werte einzugeben.
  • Typisierung (String, Boolean und Enum) und Validierung (z.B. Regex)
  • Beim manuellen Start von Jobs mit inputs wird ein Formular angezeigt, in dem erforderliche Werte rot hervorgehoben und Arrays als Drop-Down-Liste dargestellt werden.

GitLab-Pages-Templates

Die GitLab-Entwickler haben die verfügbaren Templates untersucht, bewertet und nach Beliebtheitsgrad angepasst. Somit lassen sich moderne Webseiten und responsives Design ohne zusätzliche Entwicklung realisieren.

Entfernt wurden:

  • Pages/Bridgetown
  • Pages/Gatsby
  • Pages/Pelican
  • Pages/Hexo
  • Pages/Middleman
  • Netlify/*

Neu hinzugefügt:

  • Pages/Docusaurus: Ordner Strukturen und GitLab CI, um Docusaurus Pages zu erstellen.
  • Pages/Next.js: Ordner Strukturen und GitLab CI um Next.js Pages zu erstellen.
  • GitLab CI/CD components: Grundlegende Ordnerstruktur und Beispiele für CI/CD components

Merge-Request-Dateiübersicht

Bisher war beim Arbeiten am Code nicht ersichtlich, wer in anderen Zweigen möglicherweise an derselben Datei arbeitet. Dies führte zu Merge-Konflikten und somit zusätzlichem Aufwand und ineffizienter Zusammenarbeit.

Nun lassen sich in einer Übersicht alle Merge-Requests identifizieren, die die gleiche Datei ändern.

Dadurch lassen sich:

  • potentielle Merge-Konflikte vorab identifizieren
  • redundante Code-Änderungen und somit Mehrarbeit vermeiden.

Weitere Informationen finden Sie in der Gitlab-Dokumentation.

Schreibe einen Kommentar