Continuous Integration System voor een Python Codebase

stemmen
48

Ik ben beginnen te werken aan een hobby project met een Python codebase en ik zou graag het opzetten van een of andere vorm van continue integratie (dwz het uitvoeren van een batterij van de test-gevallen per keer dat een check-in is gemaakt en het verzenden van nag e-mails om verantwoorde personen wanneer de tests mislukt), vergelijkbaar met CruiseControl of TeamCity .

Ik besef dat ik dit kon doen met haken in de meeste VCSes , maar dat vereist dat de tests uit te voeren op dezelfde machine als de versie controle server, die niet zo elegant als ik zou willen. Heeft iemand nog suggesties voor een kleine, gebruiksvriendelijk, open-source continuous integration systeem geschikt voor een Python codebase?

De vraag is gesteld op 02/08/2008 om 19:43
bron van user
In andere talen...                            


7 antwoorden

stemmen
26

Een mogelijkheid is Hudson. Het is geschreven in Java, maar er is integratie met Python projecten:

Hudson omvat Python

Ik heb het zelf nooit geprobeerd, echter.

( Update , september 2011: Na een handelsmerk geschil Hudson is hernoemd naar Jenkins .)

antwoordde op 02/08/2008 om 19:56
bron van user

stemmen
25

We lopen Buildbot - Trac op het werk. Ik heb niet gebruikt het te veel omdat mijn codebase is geen onderdeel van de release-cyclus nog niet. Maar we lopen de tests op verschillende omgevingen (OSX / Linux / Win) en stuurt e-mails - en het is geschreven in Python.

antwoordde op 02/08/2008 om 20:06
bron van user

stemmen
17

Ten tweede de Buildbot - Trac integratie. U kunt meer informatie over de integratie op het vinden Buildbot website . Op mijn vorige job, we schreven en gebruikt de plugin noemen ze (tracbb). Wat de plugin doet is het herschrijven van alle Buildbot urls zodat u Buildbot kunt gebruiken vanuit Trac. ( Http://example.com/tracbb ).

De echt leuke Buildbot is dat de configuratie is geschreven in Python. U kunt uw eigen Python-code direct te integreren in de configuratie. Het is ook heel gemakkelijk om uw eigen BuildSteps schrijven om specifieke taken uit te voeren.

We gebruikten BuildSteps om de bron te krijgen van SVN, trek de afhankelijkheden, publiceren testresultaten WebDAV, etcetera.

Ik schreef een X10 interface, zodat we signalen met ingebouwde resultaten kon sturen. Nadat het proces is mislukt, zijn we overgestapt op een rode lavalamp. Nadat het proces is geslaagd, een groene lavalamp ingeschakeld. Goede Tijden :-)

antwoordde op 03/08/2008 om 13:09
bron van user

stemmen
17

Wij gebruiken zowel Buildbot en Hudson voor Jython ontwikkeling. Beide zijn nuttig, maar hebben verschillende sterktes en zwaktes.

configuratie buildbot is pure Python en heel simpel als je eenmaal onder de knie te krijgen (kijk naar de-epydoc gegenereerde API docs voor de meest actuele informatie). Buildbot maakt het makkelijker om niet-testen taken vast en de testers te verdelen. Echter, het heeft echt geen idee van individuele tests, maar tekstueel, HTML, en samenvatting output, dus als je wilt multi-level browsable testuitgang hebben enzovoort moet je zelf bouwen, of gewoon gebruik maken van Hudson.

Hudson heeft een geweldige steun voor het boren van een daling van de totale resultaten in testreeksen en afzonderlijke tests; Het is ook zeer geschikt voor het vergelijken van testuitgang tussen bouwt, maar de gedistribueerde (master / slave) spul is relatief ingewikkelder, omdat je een Java-omgeving op de slaven ook nodig hebben; ook, Hudson is minder tolerant ten opzichte van instabiel netwerk verbindingen tussen de meester en slaven.

Dus, om de voordelen van beide instrumenten te krijgen, lopen we een enkel exemplaar van Hudson, die de gemeenschappelijke mislukte tests vangt, dan doen we multi-platform regressie met Buildbot.

Hier zijn onze voorbeelden:

antwoordde op 15/09/2008 om 01:11
bron van user

stemmen
7

Wij maken gebruik van Bitten welke is geïntegreerd met trac. En het is python gebaseerd.

antwoordde op 16/09/2008 om 17:51
bron van user

stemmen
6

TeamCity heeft een aantal Python integratie .

Maar TeamCity is:

  • niet open-source
  • is niet klein, maar met rijke
  • is gratis voor kleine-mid teams.
antwoordde op 22/09/2008 om 22:18
bron van user

stemmen
5

Ik heb zeer goede ervaringen met Travis-CI voor kleinere code bases. De belangrijkste voordelen zijn:

  • setup is gedaan in minder dan de helft van een scherm van configuratiebestand
  • kunt u uw eigen installatie te doen of gewoon gebruik maken van de gratis gehoste versie
  • semi-automatische setup voor github repositories
  • geen rekening nodig op de website; login via github

Enkele beperkingen:

  • Python wordt niet ondersteund als een eerste klas taal (vanaf het moment van schrijven, maar u kunt pip gebruiken en apt-get aan python afhankelijkheden te installeren, zie deze tutorial )

  • code moet worden gehost op GitHub (althans bij gebruik van de officiële versie)

antwoordde op 02/02/2012 om 22:42
bron van user

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