Mettre en place l'intégration continue : retour d'expériences !

Vous démarrez un projet d’application et voulez mettre en place un outil d’intégration continue pour votre projet ? On vous partage nos conseils et notre retour d’expérience sur le sujet !
Camille.jpg
Camille REGNAULT, L'animatrice du podcast ITMis à jour le 17 Juil 2019
mise en place intégration continue

Vous démarrez un projet dapplication et voulez mettre en place un outil dintégration continue pour votre projet ? On vous partage nos conseils et notre retour dexpérience sur le sujet !

Les pré-requis pour la mise en place de lintégration continue

Quel que soit loutil dintégration continue choisi (Gitlab, Jenkins, .), les pré-requis sont identiques 🙂

Si votre code est en JS (Angular, React, etc.), les phases de compilation ne vous concernent pas. Vous pouvez passer directement à la rédaction des scripts.

Compilation (ne concerne pas les projets JS)

Pour pouvoir mettre en place lintégration continue sur un projet, il faut pouvoir compiler son code en lignes de commandes (parce que tout se fait par des scripts).

Par exemple, avant pour une application Java, on générait le war depuis l’IDE Eclipse. Pour faire de lintégration continue, ce nest pas possible. Il faut utiliser un outil comme Graden ou Mavle qui permette de compiler l’application.

Compiler son code : les instanciations de serveurs (ne concerne pas les projets JS)

Pour compiler son code sur n’importe quel serveur, on utilise souvent ce quon appelle les instanciations de serveurs. Les instanciations sont faites pour compiler puis, sont jetées une fois le travail terminé (exemple : Docker). La manipulation est la suivante :

  • Lancer un environnement sur lequel on récupère le code source
  • Lancer un gestionnaire de paquets ou équivalent pour récupérer les librairies et les dépendances
  • Compiler sur la machine et récupérer le binaire de la compilation
  • Remonter le binaire sur la plateforme dintégration continue
  • Jeter la VM ou le Docker qui vous a permis de compiler

Vous avez maintenant un binaire qui peut passer simplement d’environnement en environnement !

La rédaction des scripts

Pour toute intégration continue, il y a une phase de rédaction de scripts qui permettra dautomatiser les actions selon nos besoins. Dans la pratique, on rédige un mini script qui fera automatiquement tout ce quon faisait manuellement, à partir des sources du projet.

La rédaction des scripts est plutôt simple quand vous savez ce que vous voulez, et cela doit être fait dès le début du projet.

Vous avez maintenant tout ce quil vous faut pour mettre en place lintégration continue 🙂 Attention tout de même lors de la première mise en place, il est nécessaire de vérifier que tout a été déployé comme il faut et tester la fiabilité du process mis en place. Ensuite, plus le temps passe, plus le système peut être considéré comme robuste !

Intégration continue : maîtriser le pipeline

Lintégration continue dans la pratique, cest ni plus ni moins quun gros pipeline composé de différentes étapes à valider. Voilà un pipeline classique quon retrouve dans beaucoup de nos projets :

1 – **Phase de build** : compilation de l’application pour un environnement  
2 – **Phase de tests** : tests effectués de manière unitaire. Généralement, un test se résume à une ligne de commande. On laisse ensuite faire la librairie qui exécute tous les tests   
3 – 1ère **livraison sur un environnement** de test   
4 – Réalisation d’une batterie de tests qui viennent valider la livraison par rapport à votre cahier d’exigences 
5 – **Phase de livraison finale** : livraison du projet sur un environnement de production

À notre sens, le plus gros intérêt du pipeline est quon peut passer, en plus de scripts de base, d’autres types de scripts, comme par exemple les scripts de migration de base de données.

Parce que oui, quand vous voulez mettre à jour votre projet, il y a l’application que vous souhaitez mettre à jour, mais il y a souvent aussi d’autres briques applicatives qu’il va falloir mettre à jour en fonction de la livraison ( par exemple : la base de données).

Intégration continue : notre retour dexpérience

Indispensable dans tous les projets

Chez AXOPEN, on utilise lintégration continue dans tous nos projets et cest juste génial ! Honnêtement, le plus dur ça reste la prise en main et la première configuration de loutil dintégration continue. Ensuite, si vous avez dautres projets à faire dans une stack similaire, la configuration peut être semblable, et ça va dautant plus vite !

Le plus cest que le système s’inscrit parfaitement dans la méthode agile, continuité des produits de qualité qui sont livrés aux clients fréquemment et de façon prévisible. On réduit les difficultés en augmentant la fréquence de vos livraisons de produits.

On vous conseille son utilisation sans modération 🙂

Outils dintégration continue : davantage de possibilités

Au-delà de tout ce quon a cité ci-dessus, des outils dintégration continue comme GitLab permettent de faire bien plus que seulement builder, tester et déployer ! Seule ton imagination est la limite 😉 On peut par exemple faire automatiquement :

  • Attribution de labels « en recette », « en prod » sur les issues
  • Envoi de messages sur des messageries instantanées (comme Mattermost) lors dune livraison avec la liste des changements
  • Création dune milestone lors de la livraison en producation avec toutes les issues comprises dans la livraison pour archiver/documenter
  • Fermeture automatique dissues selon certains critères : vieilles demande de contact, issue abandonnées, etc.
  • Mise à jour du SQL en plus des sources de lapplication

Enfin, si il y a une chose que vous devez garder à lesprit, cest que lintégration continue, ça peut se résumer simplement à des lignes de commandes, exécutées dans un ordre précis, à des étapes précises du workflow du projet. En bref, tout ce que vous pouvez faire en lignes de commandes, vous pouvez lintégrer au process dintégration continue !