Text_2
Facebook
Twitter
Google+
Kommentare
4
Willkommen bei "the web hates me". Mittlerweile hat unser Team ein tolles neues Monitoringtool für Agenturen gelauncht. Unter dem Namen koality.io haben wir einen Service geschaffen, der er Agenturen ermöglicht mit sehr geringen Kosten alle Ihre Webseiten zu überwachen.

Travis CI

Manchmal nutzt man Tool, die für einen selbstverständlich sind und vergisst, dass es vielleicht nicht allen so geht. Wer nicht in der Open-Source-Szene unterwegs ist, der hat vielleicht nicht so häufig Kontakt zu Travis CI, welches ich heute grob vorstellen will. Zuallererst hoffe ich mal, dass ich den Artikel umsonst schreibe, weil ihr alle die Continuous-Integration-Lösung bereits kennt. Und wenn nicht, dann wird es Zeit.

Travis CI ist also eine Software (as a Service), die mir kontinuierlich hilft zu überprüfen, ob meine Anwendung noch läuft oder ob ich sie kaputt programmiert habe. Dabei ist das Tool sehr stark an GitHub gekoppelt.

Nehmen wir folgende Situation. Nils bastelt gerade im Open Performance Monitor und checkt seinen Source-Code bei GitHub ein. Jetzt bekommt Travis CI einen Stupser von den Hub-Jungs und checkt meinen Quelltext aus. Nun kann man über eine Konfiguration, die mit im Projekt liegt dem Server sagen, was er alles mit dem Projekt anstellen soll. In unserem Fall wäre es das Bauen des Projektes und das anschließende Ausführen der Unit Tests. Wenn die Tests erfolgreich durchlaufen, macht er nichts und wenn nicht, dann bekomme ich eine Mail. Eine solche Konfiguration könnte wie folgt aussehen:

language: php
php:
- 5.5
- 5.4
- 5.3
before_script:
- composer install
script: phpunit --bootstrap tests/bootstrap.php tests

Schön finde ich, dass man auf Anhieb sehen kann, was gemacht wird. Zumindest das geschulte Entwicklerauge. Vor den Tests wird Composer aufgerufen, um die Abhängigkeiten aufzulösen und danach wird phpunit ausgeführt. Das war’s schon. Sobald man diese Steuerdatei unter dem Namen .travis.yml in Root-Verzeichnis seines Projektes angelegt hat und die Systeme verbunden hat, kann es losgehen.

Jetzt kommen wir zu den tollen zusätzlichen Features. Das noch geschultere Auge wird nämlich auch die angegebenen PHP-Versionen entdeckt haben. Travis erkennt diese und wird die Tests in drei Umgebungen ausführen und zwar parallel. Einmal PHP 5.3, einmal 5.4 und dann noch PHP 5.5.

Ein weiteres einfaches, aber dennoch nützliche Feature sind die Build-Status-Icons. Hinter jedem Projekt steckt eine Grafik-URL mit dem Build-Status.

Wenn mein Projekt jetzt kaputt ist, kann das jeder sofort sehen. Momentan ist es heile, aber wer weiß, was der Tag noch so alles bringen wird.

Mein Lieblingsfeature existiert im Zusammenhang mit Pull Requests. Jeder der sich ein wenig mit Git und GitHub auskennt, weiß, dass sich ganz viel um solche Requests dreht. Travis weiß, wie wichtig sie sind und reagiert auf diese. Für uns Projektverantwortliche bedeutet dies, dass jedes mal, wenn uns jemand einen solchen Request übergibt, Travis losläuft und schaut, ob das was da kommt auch funktioniert. Wenn ja, dann sagt mit das die Oberfläche in GitHub. Beim Fehler natürlich auch.

Wer Detailfragen hat, der kann die gerne stellen. Ich hoffe, dass ich dem ein oder anderen das System schmackhaft gemacht habe.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

4 Comments

  1. hhvm wird als php version auch unterstützt. zudem kann statt composer oder zusätzlich, je nach bedarf, auch pear verwendet werden. letzteres finde ich gerade für dev-requirements besser, damit diese nicht ständig geladen oder installiert werden müssen in jedem einzelnen projekt.

    Reply
  2. Schade, ich habe mir etwas mehr von dem Artikel erhofft (wenn er schon auf phpmagazin.de so angepriesen wird).

    Das hier aufgeführte findet man sehr viel schneller selbst heraus, wenn man sich einfach eine bestehende Travis CI Konfigurationsdatei in einem beliebigen Repo anschaut.

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen