Intégration continue

Pourquoi?

Martin Fowler, qui a été le premier à écrire à propos de l’intégration continue (Continuous Integration ou CI) avec Kent Beck, décrit la CI comme ce qui suit:

L’intégration continue est une pratique de développement logiciel, où les membres d’une équipe intègrent leur travail souvent, habituellement chaque personne intègre au moins quotidiennement - conduisant à de multiples intégrations par jour. Chaque intégration est vérifiée par un build automatique (y compris le test) pour détecter les erreurs d’intégration aussi rapidement que possible. De nombreuses équipes trouvent que cette approche conduit à une réduction significative des problèmes d’intégration et permet à une équipe de développer des logiciels cohérents plus rapidement.

Jenkins

Jenkins CI est un moteur d’intégration continue extensible. Utilisez-le.

Buildbot

Buildbot est un système Python pour automatiser le cycle de compilation/test pour valider les changements de code.

Tox

tox est un outil d’automatisation fournissant le packaging, les tests et le déploiement de logiciels Python directement depuis la console ou le serveur d’intégration continue. C’est un outil en ligne de commande de gestion d’environnement virtuel virtualenv générique et de test qui fournit les fonctionnalités suivantes:

  • Vérifiant que les paquets s’installent correctement avec les différentes versions de Python et ses différents interpréteurs

  • Exécutant des tests dans chacun des environnements, configurant l’outil de test de votre choix

  • Agissant comme un front-end pour les serveurs d’intégration continue, réduisant les surcouches et fusionnant la CI et les tests basés sur le shell.

Travis-CI

Travis-CI est un serveur de CI distribué qui exécute des tests pour les projets open source gratuitement. Il fournit plusieurs workers pour exécuter des tests Python sur et s’intègre de façon transparente avec GitHub. Vous pouvez même faire des commentaires sur vos Pull Requests si ce changeset particulier casse le build ou non. Donc, si vous hébergez votre code sur GitHub, travis-ci est un bonne et facile manière de commencer avec l’intégration continue.

Pour commencer, ajoutez un fichier .travis.yml à votre dépôt avec cet exemple de contenu:

language: python
python:
  - "2.6"
  - "2.7"
  - "3.2"
  - "3.3"
# command to install dependencies
script: python tests/test_all_of_the_units.py
branches:
  only:
    - master

Cela vous permettre d’avoir votre projet testé sur toutes les versions de Python listées en exécutant le script donné, et ne fera que builder la branche master. Il y a beaucoup plus d’options que vous pouvez activer, comme les notifications, avant et après les étapes et bien plus encore. La documentation de travis-ci explique toutes ces options, et est très complète.

Afin d’activer les tests pour votre projet, allez sur le site travis-ci et connectez-vous avec votre compte GitHub. Ensuite, activez votre projet dans vos paramètres de profil et vous êtes bon. A partir de maintenant, les tests de votre projet seront exécutés sur tous les push vers GitHub.