Ich bin jetzt nach langem hin und her endlich einmal dazu gekommen einen Jenkins Server zu installieren und einzurichten. Yay!

Der Server ist headless, also hat keinen X-Server installiert. Wenn ich nun jUnit-Tests machen lasse und darin irgendwo Swing benutzt (technisch gesehen instanziiert) wird greift Java in den Konstruktoren der Swing-Klassen automatisch auf den X-Server zurück, um das ganze Zeug wie Auflösung, Fonts und DPI-Scaling auszulesen bzw. auszurechnen.

https://wiki.jenkins-ci.org/display/JENKINS/Xvfb+Plugin

Abhilfe schafft das Xvfb-Plugin, dass vor jedem Build eine Xvfb-Instanz erzeugt und mit Hilfe der Umgebungsvariable $DISPLAY alles graphische dort hin leitet.

— Note to myself:

Wenn im Jenkins auf der Konfigurationsseite als Hilfestellung zur Einrichtung von Xvfb folgendes steht:

A typical option looks like “/path/to/vncserver :$DISPLAY_NUMBER -geometry 800x600”

Dann hat man gefälligst den vollen Pfad für Xvfb auszuschreiben, sonst schlagen die Builds mit folgender Meldung fehl:

vncserver: The HOME environment variable is not set.

Ich habe dieses Problem bisher nirgendwo gefunden, deshalb dieser Post. Und natürlich auch, um meinen Schmerz der Stunden dauernden Fehlersuche mit euch zu teilen.

Aber jetzt rennt die Kiste erst einmal wieder. freude