Eine kurze Einführung in das Thema Continuous Integration mit GitLab CI. Das Ganze erfolgt an einem einfachen Syntax Check-Beispiel von .html und .php Dateien. Weitere Infos und ein Quick Start Einstieg finden sich auch auf der GitLab CI Seite.
Voraussetzungen ist, dass gitlab und gitlab-ci-multi-runner installiert sind und
:~# dpkg -l | grep gitlab ii gitlab-ce 8.9.6-ce.0 ii gitlab-ci-multi-runner 1.3.3
HTML-Tidy für den .html Syntax Check. Im Prinzip ist dies die Linux Installation wie im Atom Tidy Beitrag beschrieben.
:~# wget http://binaries.html-tidy.org/binaries/tidy-5.2.0/tidy-5.2.0-64bit.deb :~# dpkg -i tidy-5.2.0-64bit.deb Vormals nicht ausgewähltes Paket tidy wird gewählt. (Lese Datenbank ... 123425 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von tidy-5.2.0-64bit.deb ... Entpacken von tidy (5.2.0) ... tidy (5.2.0) wird eingerichtet ... Trigger für man-db (2.7.0.2-5) werden verarbeitet ...
Zusätzlich sollten noch php-cli und zip installiert sein,
ii php5-cli ii zip
anhand derer der .php Syntax Check und ein Zusammenpacken der getesteten Dateien erfolgt.
Ein neues Projekt in GitLab anlegen.
Die Informationen zur Runner Registrierung finden sich im Projekt unter dem Zahnrad und Klick auf Runners. URL und Token werden später benötigt.
Runner für das Projekt auf der Konsole registrieren. Bei „Please enter the executor:“ shell eingeben. Ansonsten die Informationen per copy & paste aus den Informationen von oben verwenden bzw. sind frei wählbar.
:~# gitlab-ci-multi-runner register Running in system-mode. Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/ci): https://gitlab.debtest.localhorst.local/ci Please enter the gitlab-ci token for this runner: yxzFgZPJJLPyEph59GUQ Please enter the gitlab-ci description for this runner: [debtest]: html php zip gitlab-ci test Please enter the gitlab-ci tags for this runner (comma separated): syntax,check,zip Registering runner... succeeded runner=yxzFgZPJ Please enter the executor: docker, docker-ssh, parallels, shell, ssh, virtualbox, docker+machine, docker-ssh+machine: shell Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
Der soeben registrierte Runner erscheint in dem Projekt.
In dem Repository nun zwei einfache Testdateien anlegen. Ob dies von „außen“ per git push geschieht oder mit dem GitLab GUI per Pluszeichen „New File“ spielt keine Rolle.
:~# cat index.html <!DOCTYPE html> <html> <head> <title></title> </head> <body> localhorst syntax check </body> </html> :~# cat info.php <?php phpinfo(); ?>
Das Build Script wird ebenfalls in das Repository als .gitlab-ci.yml hinzugefügt.
tidy_html: script: - tidy -q *.html - php -l *.php - zip /tmp/htmltest-$(date '+%s').zip *
Das Repository mit den beiden Testdateien und dem .gitlab-ci.yml Build Script im GitLab GUI unter Repository -> Files
Bei jedem commit in das Repository wird das .gitlab-ci.yml abgearbeitet. Unter Pipelines -> Builds -> und einem Klick auf das grüne passed, wird der komplette Build Prozess angezeigt.
Die im /tmp Verzeichnis zu findende .zip Datei kann dann, im Zuge von Continuous Delivery weiter an andere Rechner distribuiert werden.
-rw-r--r-- 1 gitlab-runner gitlab-runner 409 Jul 16 12:47 htmltest-1468666032.zip
Zur Gegenprobe wird die Syntax, zum Beispiel in der index.html Datei, verändert. Um einen Fehler zu provozieren, einfach irgend eine abschließende spitze Klammer löschen. Nach dem commit in das Repository und wieder unter Pipelines -> Builds -> und einem Klick nun auf das rote failed
erscheint hier entsprechend die Fehlermeldung, die zum sofortigen Abbruch des Buildprozess geführt hat.