Login
Newsletter
Werbung

Do, 17. Dezember 2015, 15:00

GitLab Continuous Integration

Der erste Build

Zeit, mit etwas Einfachem zu beginnen. Als Beispiel dient eine einfache kleine C-Anwendung namens test.c:

#include <stdio.h>

int main() {
    printf("GitLab CI rocks!\n");
    return 0;
}

Die CI-Konfigurationsdatei .gitlab-ci.yml sieht wie folgt aus:

build:
  script:
    - "rm *.out || true"
    - "gcc *.c"

In diesem Beispiel wird ein Job build definiert, der zwei Kommandos ausführt. Das erste Kommando löscht eventuell vorher übersetzte C-Programme, während der zweite Aufruf den Quellcode übersetzt.

Nach einem erfolgten Commit wird automatisch die CI ausgelöst. Ersichtlich ist das durch einen Eintrag links im Builds-Menü - hier ist im Idealfall eine 1 zu sehen (für einen aktuell laufenden Build-Prozess). Ein Klick auf das Menü öffnet die Übersicht aktueller und vergangener Builds. Mit einem Klick auf einzelne Builds lassen sich Konsolenausgaben und Git-Informationen (Commit-Nummer, Branch, Autor) anzeigen. Per Mausklick auf das entsprechende Symbol lassen sich Builds wiederholen.

GitLab bietet auch die Möglichkeit, Build zeitgesteuert auszuführen - z.B. spätestens alle 5 Stunden. In diesem Fall würde nach einer gewissen Zeit ein Build ausgelöst werden, sofern kein Commit erfolgt. Dieses Verhalten kann in den Projekt-Einstellungen unterhalb CI Settings konfiguriert werden (Build Schedule). In diesem Dialog findet sich auch ein Status-Bild (Status badge), welches beispielsweise in die README.md Datei des Repositories eingebunden werden kann - so ist der aktuelle Build-Status immer ersichtlich.

Build-Übersicht

Christian Stankowic

Build-Übersicht

Build-Details

Christian Stankowic

Build-Details

README mit Build-Status

Christian Stankowic

README mit Build-Status

Ausblick

Ich bin mit der Lösung sehr zufrieden; mit Jenkins hatte ich leider häufig Probleme - nicht zuletzt wegen Java. Häufige Updates und Re-Konfigurationen waren die Folge. GitLab CI integriert sich wunderbar in die Oberfläche, die ich ohnehin schon zum Entwickeln verwende. Für mich bedeutet das weniger Administrations- und Verwaltungsaufwand. Je nach Projektumfang dürfte die integrierte CI-Lösung nicht allen Anforderungen gewachsen sein - für kleinere Setups ist sie allerdings ideal. Ich bin gespannt, inwiefern GitLab die Funktionen erweitert.

Auf der GitLab-Webseite gibt es weitere Informationen.

Der Artikel ist ursprünglich auf der Webseite des Autors erschienen.

  • Das Werk darf vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden, Abwandlungen und Bearbeitungen des Werkes müssen unter den gleichen Bedingungen weitergegeben werden. Der Name des Autors/Rechteinhabers muss in der von ihm festgelegten Weise genannt werden.

    - Weitere Informationen
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung