L'intégration continue

L'intégration continue permet de garantir par un ensemble de bonnes pratiques que chaque modification de code source n’entraine pas de régression. En pratique, l'intégration du logiciel doit être effectuée en permanence pour remonter tout défaut.

Bien que les outils d'intégration continue soient avant tout tournés vers le développement, les pratiques d'intégration continue peuvent également être appliqués au maintien en conditions opérationnelles d'un ou plusieurs systèmes, par exemple en combinant des outils comme Jenkins et des outils de déploiement comme Puppet.

Capture d'écran de Jenkins

Interface de Jenkins.

Automatisation du build

En pratique, Jenkins permet d'effectuer une construction et une intégration complète du logiciel développé:

  • de manière périodique (nightly build, ...)
  • à chaque commit
  • à la demande par une interface web
  • en ligne de commande (scriptable)
  • et même via un jeu de commandes IRC !

L'interface web de Jenkins permet de configurer un ensemble d'étape automatisées construisant le logiciel et procédant aux étapes d'intégration. En cas d'échec, Jenkins marque la construction comme échouée et effectue le reporting nécessaire.

Jenkins est capable d'exécuter des commandes make, shell, maven2, etc. La construction peut être locale ou distante sur une ferme de construction.

Reporting

Le reporting se fait via l'interface web de jenkins, mais aussi par mail, flux RSS ou même messagerie instantanée ! Un tableau de bord permet une projection sur écran de l'état actuel du logiciel. De nombreux plugins permettent de paramétrer finement le reporting.

Qualité logicielle

Des tests unitaires ou fonctionnels peuvent être configurés dans les étapes de construction. Des plugins permettent de mettre en place des métriques et il est possible de marquer une construction comme échouée en si les tests passent en dessous d'un certain seuil.

Le plus d'Alcôve

Alcôve utilise Jenkins pour ses propres développements et est donc parfaitement à même de conseiller et de déployer Jenkins pour toute architecture.