Momentan konfiguriere ich mir einen Jenkins CI Server für private PHP Sachen. Da ich das nicht alle Tage mache schreibe ich mir hakelige Sachen oder Dinge die ich recherchieren mußte hier für das nächste mal nieder. Ich werde den Server primär zum Ausführen von Unit-Tests, dem Erzeugen von Dokumentation und Softwaremetriken nutzen. Eventuell hänge ich noch ein Deployment dran.
Eine schöne Anleitung für die PHP Projekte gibt es hier. Wenn man den Server per Kommandozeile steuern möchte – um z.B. Plugins zu installieren – muß man sich per SSH Key authentifizieren.
Hier die Konfiguration auf der Kommandozeile + Webinterface im Schnelldurchgang:
1. jenkins-cli.jar besorgen
Von der Seite http://yourserver.com/cli runterladen – der Eintrag im Jenkins Wiki zu dem Thema ist auch sehr nützlich
2. Key erzeugen
ms@jenkins:~$ ssh-keygen -t rsa -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/home/ms/.ssh/id_rsa): id_rsa_jenkins_cli Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in id_rsa_jenkins_cli. Your public key has been saved in id_rsa_jenkins_cli.pub. The key fingerprint is: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx ms@jenkins The key's randomart image is: +--[ RSA 4096]----+ | cxxxxxxxxxxx | | xxxxxxxxxxxx | | xxxxxxxxxxxx | | xxxxxxxxxx | | xxxxxxxx | | x | | | | | | | +-----------------+ ms@jenkins:~$ mv id_rsa_jenkins_cli* .ssh/ |
3. Public Key im Jenkins Webinterface eintragen
Die Url lautet https://yourserver.com/me/configure
ms@jenkins:~$ cat .ssh/id_rsa_jenkins_cli.pub |
4. Beim Aufruf von jenkins-cli.jar den Pfad zum Key mit -i mitgeben.
ms@jenkins:~$ java -jar jenkins-cli.jar -i .ssh/id_rsa_jenkins_cli -s http://localhost/jenkins install-plugin checkstyle cloverphp crap4j dry htmlpublisher jdepend plot pmd violations warnings xunit Installing checkstyle from update center Installing cloverphp from update center Installing crap4j from update center Installing dry from update center Installing htmlpublisher from update center Installing jdepend from update center Installing plot from update center Installing pmd from update center Installing violations from update center Installing warnings from update center Installing xunit from update center |