Dies ist eine etwas vergebliche Frage, aber die Ausgabe von BuildBot ist nicht besonders schön anzusehen.
Zum Beispiel im Vergleich zu ..
..und andere, BuildBot sieht eher .. archaisch aus
Ich spiele derzeit mit Hudson, aber es ist sehr Java-zentriert (obwohl ich mit diesem Handbuch die Einrichtung einfacher fand als mit BuildBot und mehr Informationen produzierte).
Grundsätzlich gilt: Gibt es Continuous Integration-Systeme für Python, die viele glänzende Grafiken und ähnliches erzeugen?
Update: Seit dieser Zeit hat das Jenkins-Projekt Hudson als Community-Version des Pakets ersetzt. Die ursprünglichen Autoren sind ebenfalls zu diesem Projekt übergegangen. Jenkins ist jetzt ein Standardpaket für Ubuntu / Debian, RedHat / Fedora / CentOS und andere. Das folgende Update ist noch im Wesentlichen korrekt. Der Ausgangspunkt dafür ist bei Jenkins anders.
Update: Nachdem ich ein paar Alternativen ausprobiert habe, denke ich, dass ich bei Hudson bleiben werde. Integrität war nett und einfach, aber ziemlich begrenzt. Ich denke, Buildbot ist besser geeignet, um zahlreiche Build-Slaves zu haben, als alles, was auf einem einzelnen Computer läuft, wie ich es verwendet habe.
Das Einrichten von Hudson für ein Python-Projekt war ziemlich einfach:
- Laden Sie Hudson von http://hudson-ci.org/ herunter.
- Führen Sie es mit
java -jar hudson.war
- Öffnen Sie die Weboberfläche unter der Standardadresse von
http://localhost:8080
- Gehen Sie zu Hudson verwalten, Plugins, klicken Sie auf "Aktualisieren" oder ähnliches
- Installieren Sie das Git-Plugin (ich musste den
git
Pfad in den globalen Hudson- Einstellungen festlegen ) - Erstellen Sie ein neues Projekt, geben Sie das Repository, die SCM-Abfrageintervalle usw. ein
- Installieren Sie
nosetests
über,easy_install
falls dies noch nicht geschehen ist - Fügen Sie im Schritt a build hinzu
nosetests --with-xunit --verbose
- Aktivieren Sie "JUnit-Testergebnisbericht veröffentlichen" und setzen Sie "Testbericht-XMLs" auf
**/nosetests.xml
Das ist alles was benötigt wird. Sie können E-Mail-Benachrichtigungen einrichten, und die Plugins sind einen Blick wert. Einige, die ich derzeit für Python-Projekte verwende:
- SLOCCount-Plugin zum Zählen von Codezeilen (und grafische Darstellung!) - Sie müssen sloccount separat installieren
- Verstöße zum Parsen der PyLint-Ausgabe (Sie können Warnschwellenwerte festlegen und die Anzahl der Verstöße für jeden Build grafisch darstellen).
- Cobertura kann die Ausgabe von Coverage.py analysieren. Nosetest kann Abdeckung sammeln , während die Tests ausgeführt wird , unter Verwendung
nosetests --with-coverage
(dies schreibt die Ausgabe an**/coverage.xml
)