Continuous Integration System für einen Python-Codebases

stimmen
48

Ich beginne mit einer auf einem Hobby - Projekt zu arbeiten Python Code - Basis , und ich möchte eine Form der kontinuierlichen Integration einzurichten (dh eine Batterie von Testfällen jedes Mal , wenn ein Check-in gemacht ausgeführt wird und das Senden Gaul E-Mails verantwortlich Personen , wenn die Tests fehlschlagen) ähnlich CruiseControl- oder Teamcity .

Ich weiß , ich könnte dies in den meisten mit Haken tun VCSes , aber das erfordert , dass die Tests auf der gleichen Maschine wie der Versionskontrollserver ausgeführt, die nicht so elegant ist , wie ich möchte. Hat jemand irgendwelche Vorschläge für ein kleines, benutzerfreundliche, Open-Source - Continuous - Integration - System geeignet für eine Python Code - Basis?

Veröffentlicht am 02/08/2008 um 19:43
quelle vom benutzer
In anderen Sprachen...                            


7 antworten

stimmen
26

Eine Möglichkeit ist, Hudson. Es ist in Java geschrieben, aber es ist die Integration mit Python-Projekten:

Hudson umfasst Python

Ich habe es nie selber ausprobiert, aber.

( Aktualisierung , September 2011: Nach einem Markenrechtsstreit Hudson wurde umbenannt Jenkins .)

Beantwortet am 02/08/2008 um 19:56
quelle vom benutzer

stimmen
25

Wir betreiben Buildbot - Trac bei der Arbeit. Ich habe es nicht zu viel verwendet , da meine Code - Basis noch nicht Teil des Release - Zyklus ist. Aber wir laufen die Tests auf verschiedenen Umgebungen (OSX / Linux / Win) und sendet E - Mails - und es ist in Python geschrieben.

Beantwortet am 02/08/2008 um 20:06
quelle vom benutzer

stimmen
17

Wir verwenden sowohl Buildbot und Hudson für Jython Entwicklung. Beide sind nützlich, aber haben unterschiedliche Stärken und Schwächen.

Buildbot Konfiguration ist reine Python und ganz einfach, sobald man den Dreh raus zu (Blick auf die epydoc generierte API-Dokumentation für die aktuellsten Informationen) erhalten. Buildbot macht es einfacher, nicht-Prüfaufgaben zu definieren und die Tester verteilen. Allerdings hat es wirklich keine Vorstellung von einzelnen Tests, nur Text, HTML und Zusammenfassung Ausgang, so dass, wenn Sie Multi-Level-durchsuchbaren Testausgang haben wollen und so weiter werden Sie es selbst bauen müssen, oder einfach nur Hudson verwenden.

Hudson hat hervorragende Unterstützung für das Bohren von Gesamtergebnissen in Testreihen nach unten und Einzeltests; es ist auch große Testausgang zwischen baut für den Vergleich, aber die verteilte (Master / Slave) Material ist vergleichsweise komplizierter, weil Sie eine Java-Umgebung auf den Slaves zu müssen; Auch hier ist Hudson weniger tolerant flockiger Netzwerkverbindungen zwischen Master und Slaves.

Also, die Vorteile beider Tools zu erhalten, haben wir eine einzelne Instanz von Hudson laufen, die die gemeinsamen Testfehler fängt, dann tun wir Multi-Plattform-Regression mit Buildbot.

Hier sind unsere Beispiele:

Beantwortet am 15/09/2008 um 01:11
quelle vom benutzer

stimmen
17

Zweitens die Buildbot - Trac Integration. Sie können mehr Informationen über die Integration auf der finden Buildbot Website . Bei meinem vorherigen Job, wir schrieben und verwendet , um das Plugin sie erwähnen (tracbb). Was das Plugin tut , ist all die Buildbot Urls umschreiben , so dass Sie Buildbot aus Trac verwenden können. ( Http://example.com/tracbb ).

Das wirklich Schöne an Buildbot ist, dass die Konfiguration in Python geschrieben. Sie können Ihren eigenen Python-Code direkt auf die Konfiguration integrieren. Es ist auch sehr einfach, Ihre eigenen BuildSteps zu schreiben bestimmte Aufgaben auszuführen.

Wir verwenden BuildSteps die Quelle aus dem SVN zu bekommen, ziehen Sie die Abhängigkeiten, die Testergebnisse zu WebDAV, und so weiter zu veröffentlichen.

Ich schrieb eine X10-Schnittstelle, so dass wir Signale mit Bauergebnisse schicken könnten. Wenn die Build fehlgeschlagen ist, wechselten wir auf einer roten Lava-Lampe. Wenn die Erstellung erfolgreich war, schaltete eine grüne Lava-Lampe auf. Gute Zeiten :-)

Beantwortet am 03/08/2008 um 13:09
quelle vom benutzer

stimmen
7

Wir sind mit Gebissen weichen mit trac integriert ist. Und es ist Python basiert.

Beantwortet am 16/09/2008 um 17:51
quelle vom benutzer

stimmen
6

Teamcity hat einige Python - Integration .

Aber Teamcity ist:

  • nicht Open-Source
  • nicht klein, sondern reich verfügen
  • ist für kleine bis mittleren Teams frei.
Beantwortet am 22/09/2008 um 22:18
quelle vom benutzer

stimmen
5

Ich habe sehr gute Erfahrungen mit Travis-CI für kleinere Codebasen. Die wichtigsten Vorteile sind:

  • Aufbau ist in weniger als einer halben Bildschirm der Konfigurationsdatei durchgeführt
  • Sie können Ihre eigene Installation machen oder einfach die kostenlose gehostete Version verwenden
  • semi-automatische Einrichtung für GitHub Repositories
  • kein Konto auf der Website erforderlich sind; anmelden via GitHub

Einige Einschränkungen:

  • Python ist nicht als First - Class - Sprache (ab Zeitpunkt des Schreibens, aber man pip und apt-get Python - Abhängigkeiten installieren kann, siehe unterstützt dieses Tutorial )

  • Code muss auf Github gehostet (zumindest, wenn die offizielle Version verwenden)

Beantwortet am 02/02/2012 um 22:42
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more