Revision 7 vom 2015-04-24 10:08:49

Nachricht löschen

Gitlab Continuous Integration

Passend zu Gitlab bietet der FB3 den zugehörigen CI-Dienst Gitlab-CI unter folgender URL an:

Die Anmeldung erfolgt via oAuth über Gitlab, d.h. man meldet sich zuerst bei Gitlab an und klickt dann im Gitlab-CI Interface einfach den "Login with Gitlab"-Button. Bei der ersten Anmeldung muss Gitlab-CI autorisiert werden, den Gitlab-Account nutzen zu dürfen.

Runner

Runner sind Prozesse, die die Builds/Tests (sog. Jobs) ausführen. Dabei ist zwischen "Shared" und "Specific" Runnern zu unterscheiden. Ein "Specific"-Runner bedient gezielt nur ein Projekt, während "Shared"-Runner alle Jobs abarbeiten, die keinen eigenen "Specific"-Runner haben und dafür freigeschaltet sind (siehe die Option "Allow shared runners" in den Gitlab-CI-Projekteinstellungen). Da nicht alle Jobs in allen Umgebungen funktionieren, kann mit Tags gesteuert werden, welche Jobs auf welchen Runnern ausgeführt werden können. Wenn für einen Job keine Tags definiert sind, wird ein zufälliger Shared-Runner benutzt.

Shared-Runner kann man sich über das Gitlab-CI-Interface nicht auflisten lassen und werden auch nicht im Runners-Tab in der Projektansicht angezeigt. Man kann nur im Nachhinein über das Build-Log feststellen, auf welchem Shared-Runner ein Job ausgeführt wurde.

Shared-Runner

Der FB3 stellt eine Reihe von "Shared"-Runnern zur Verfügung:

Platform

Tags

Hostnamen

Debian Wheezy

linux

x{01..25}

Mac OS X

darwin

a{01..20}

Smartos/Illumos

sunos

gitlab-ci-runner-sunos-1

Fehlende Pakete für Builds/Tests können auf Anfrage nachinstalliert werden. Dazu kann man einfach eine E-Mail an <service AT informatik DOT uni-bremen DOT de> senden.

Specific-Runner

Man kann auch eigene Specific-Runner erstellen, die dann nur die eigenen Projekte bedienen. Der Vorteil ist, dass man die Entwicklungsumgebung individuell anpassen kann. Siehe die offizielle Dokumentation zu Gitlab-CI-Runnern.

Zu empfehlen ist der inoffizielle Go-Runner, der schnell und unkompliziert auf gängigen Plattformen (Linux, Windows, Mac) eingerichtet werden kann.