Intégration Continue : Nightly builds, la première brique de l’intégration continue

Contexte

Le travail en équipe est devenu incontournable pour le développement d’applications logicielles. Cela nécessite bien entendu d’avoir un référentiel de source commun (comme CVS, SubVersion, …).
Chaque développeur peut ainsi récupérer les sources en local, travailler dessus, puis livrer (commiter) son travail sur le référentiel.

Mais quel développeur ne s’est jamais retrouvé confronté à des erreurs de compilations suite au rapatriement des sources présentes sur le référentiel. Alors s’en suit plusieurs scénarii qui font tous perdre autant de temps et mettent en péril le projet (recherche du développeur responsable de l’erreur, correction de l’erreur, …).

Définition

« Nightly build » peut être traduit littéralement « compilation de nuit ».

Le principe est simple et constitué de tâches automatisées et planifiées :

  • Récupération de la tête du référentiel
  • Compilation
  • Génération d’un rapport de compilation
  • Notification du résultat
  • Éventuellement photo instantanée en cas de compilation réussie (snapshot)

Extension

Le « nightly build » est souvent couplé à d’autres tâches pour former une solution complète d’intégration continue :

  • Génération de la documentation
  • Mise à jour du site du projet
  • Vérification de la qualité du code
  • Détection de portions de code où le risque de bug est le plus fort

Toute erreur de compilation est donc rapidement détectée et le snapshot peut être utilisé en secours pendant la résolution de cette erreur.

Outils

Anthill OS :  gratuit, limité à la fonctionnalité « nightly build »

Anthill Pro 3 : produit commercial, contenant toutes les fonctionnalités d’intégration continue (dont le « nightly build »)

Continuum : projet open source. Serveur d’intégration continue contenant toutes les fonctionnalités d’intégration continue (dont le « nightly build »)

Ludovic Bertin
Expert Java/J2EE – OOSphère