C'est une question un peu… vaine, mais la sortie de BuildBot n'est pas particulièrement agréable à regarder.
Par exemple, par rapport à ..
..et d'autres, BuildBot a l' air plutôt .. archaïque
Je joue actuellement avec Hudson, mais il est très centré sur Java (bien qu'avec ce guide , je l'ai trouvé plus facile à configurer que BuildBot, et j'ai produit plus d'informations)
Fondamentalement: existe-t-il des systèmes d'intégration continue destinés à python, qui produisent beaucoup de graphiques brillants et autres?
Mise à jour: depuis ce temps, le projet Jenkins a remplacé Hudson en tant que version communautaire du package. Les auteurs originaux sont également passés à ce projet. Jenkins est maintenant un package standard sur Ubuntu / Debian, RedHat / Fedora / CentOS et autres. La mise à jour suivante est toujours essentiellement correcte. Le point de départ pour faire cela avec Jenkins est différent.
Mise à jour: après avoir essayé quelques alternatives, je pense que je vais rester avec Hudson. L'intégrité était agréable et simple, mais assez limitée. Je pense que Buildbot est mieux adapté pour avoir de nombreux esclaves de construction, plutôt que tout fonctionnant sur une seule machine comme je l'utilisais.
Configurer Hudson pour un projet Python était assez simple:
- Téléchargez Hudson depuis http://hudson-ci.org/
- Exécutez-le avec
java -jar hudson.war
- Ouvrez l'interface Web à l'adresse par défaut de
http://localhost:8080
- Accédez à Gérer Hudson, Plugins, cliquez sur "Mettre à jour" ou similaire
- Installez le plugin Git (j'ai dû définir le
git
chemin dans les préférences globales Hudson) - Créez un nouveau projet, entrez dans le référentiel, les intervalles d'interrogation SCM, etc.
- Installer
nosetests
viaeasy_install
si ce n'est déjà fait - À l'étape de création, ajoutez
nosetests --with-xunit --verbose
- Cochez «Publish JUnit test result report» et définissez «Test report XMLs» sur
**/nosetests.xml
C'est tout ce qu'il faut. Vous pouvez configurer des notifications par e-mail, et les plugins valent le coup d'œil. Quelques-uns que j'utilise actuellement pour les projets Python:
- Plug-in SLOCCount pour compter les lignes de code (et les représenter graphiquement!) - vous devez installer sloccount séparément
- Violations pour analyser la sortie PyLint (vous pouvez configurer des seuils d'avertissement, représenter graphiquement le nombre de violations sur chaque build)
- Cobertura peut analyser la sortie coverage.py. Nosetest peut recueillir une couverture lors de l'exécution de vos tests, en utilisant
nosetests --with-coverage
(ceci écrit la sortie dans**/coverage.xml
)