Système d'intégration continue pour un Python Codebase

voix
48

Je commence à travailler sur un projet de passe - temps avec un Python codebase et je voudrais mettre en place une certaine forme d'intégration continue (ie la gestion d' une batterie de test-cas chaque fois qu'un enregistrement est effectué et l' envoi d' e-mails nag pour responsable personnes lorsque les tests échouent) similaires à CruiseControl ou TeamCity .

Je me rends compte que je pouvais le faire avec des crochets dans la plupart des VCSes , mais qui exige que les tests exécutés sur la même machine que le serveur de contrôle de version, ce qui est pas aussi élégant que je le voudrais. Quelqu'un at - il des suggestions pour un petit système d'intégration, continue open source convivial propice Python codebase?

Créé 02/08/2008 à 19:43
source utilisateur
Dans d'autres langues...                            


7 réponses

voix
26

Une possibilité est d'Hudson. Il est écrit en Java, mais il y a l'intégration des projets Python:

Hudson embrasse Python

Je ne l'ai jamais essayé moi-même, cependant.

( Mise à jour , sept 2011: Après un conflit de marque Hudson a été renommé Jenkins .)

Créé 02/08/2008 à 19:56
source utilisateur

voix
25

Nous courons Buildbot - Trac au travail. Je ne l' ai pas utilisé trop depuis mon code de base ne fait pas partie du cycle de sortie pour le moment. Mais nous courons des tests sur différents environnements (OSX / Linux / Windows) et il envoie des e - mails - et il est écrit en Python.

Créé 02/08/2008 à 20:06
source utilisateur

voix
17

Nous utilisons à la fois Buildbot et Hudson pour le développement Jython. Les deux sont utiles, mais ont des forces et des faiblesses différentes.

La configuration de buildbot est pur Python et assez simple une fois que vous obtenez le coup de celui-ci (voir l'API généré epydoc-docs pour l'info la plus récente). Buildbot facilite la définition des tâches non tests et distribuer les testeurs. Cependant, il n'a pas vraiment concept de tests individuels, tout texte, HTML, et la sortie de synthèse, donc si vous voulez avoir la sortie de test explorable à plusieurs niveaux et ainsi de suite, vous devrez construire vous-même, ou tout simplement utiliser Hudson.

Hudson a un soutien formidable pour le forage vers le bas de l'ensemble des résultats dans des suites de tests et des tests individuels; il est également idéal pour comparer la sortie de test entre construit, mais la substance distribuée (maître / esclave) est relativement plus complexe parce que vous avez besoin d'un environnement Java sur les esclaves aussi; aussi, Hudson est moins tolérant des liaisons réseau floconneux entre le maître et les esclaves.

Donc, pour obtenir les avantages des deux outils, nous courons une seule instance d'Hudson, qui attrape les échecs de test communes, nous faisons une régression multi-plateforme avec Buildbot.

Voici nos exemples:

Créé 15/09/2008 à 01:11
source utilisateur

voix
17

Deuxièmement , la Buildbot - intégration Trac. Vous pouvez trouver plus d' informations sur l'intégration sur le site Buildbot . A mon emploi précédent, nous avons écrit et utilisé le plugin qu'ils mentionnent (tracbb). Qu'est - ce que le plug - in est fait réécrire toutes les urls buildbot afin que vous puissiez utiliser Buildbot à partir de Trac. ( Http://example.com/tracbb ).

La seule chose vraiment bien Buildbot est que la configuration est écrit en Python. Vous pouvez intégrer votre propre code Python directement à la configuration. Il est également très facile d'écrire vos propres BuildSteps pour exécuter des tâches spécifiques.

Nous avons utilisé BuildSteps pour obtenir la source de SVN, tirer les dépendances, publier les résultats des tests à WebDAV, etcetera.

J'ai écrit une interface X10 afin que nous puissions envoyer des signaux avec des résultats de construction. Lorsque la construction a échoué, nous sommes passés sur une lampe à lave rouge. Lorsque la construction a réussi, une lampe à lave verte allumée. Bon temps :-)

Créé 03/08/2008 à 13:09
source utilisateur

voix
7

Nous utilisons Bitten Wich est intégré à trac. Et il est basé python.

Créé 16/09/2008 à 17:51
source utilisateur

voix
6

TeamCity a une certaine Python intégration .

Mais TeamCity est:

  • pas open-source
  • n'est pas petit, mais riche en fonctionnalités
  • est gratuit pour les équipes de petites et moyennes.
Créé 22/09/2008 à 22:18
source utilisateur

voix
5

J'ai de très bonnes expériences avec Travis-CI pour les petites bases de code. Les principaux avantages sont les suivants :

  • la configuration se fait en moins d'un demi-écran du fichier de configuration
  • vous pouvez faire votre propre installation ou tout simplement utiliser la version gratuite hébergé
  • configuration semi-automatique pour les dépôts de GitHub
  • aucun compte nécessaire sur le site; connecter via github

Quelques limitations:

  • Python est pas pris en charge en tant que première langue de classe (au moment de l' écriture, mais vous pouvez utiliser pip et apt-get pour installer les dépendances de python, voir ce tutoriel )

  • le code doit être hébergé sur GitHub (au moins lors de l'utilisation de la version officielle)

Créé 02/02/2012 à 22:42
source utilisateur

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