Intégration Continue


Définition


L'intégration continue (CI) permet aux développeurs de fusionner plus fréquemment leurs modifications de code dans une « branche » partagée, ou un « tronc », parfois même tous les jours. Une fois que les modifications apportées par un développeur sont fusionnées, elles sont validées par la création automatique de l'application et l'exécution de différents niveaux de test automatisés (généralement des tests unitaires et d'intégration) qui permettent de vérifier que les modifications n'entraînent pas de dysfonctionnement au sein de l'application.

En d'autres termes, il s'agit de tester absolument tout, des classes et fonctions jusqu'aux différents modules qui constituent l'application. En cas de détection d'un conflit entre le code existant et le nouveau code, le processus d'intégration continue permet de résoudre les dysfonctionnements plus facilement, plus rapidement et plus fréquemment.

Dans la pratique

Ici, deux scénarios sont possibles :

  1. Le code est validé selon les critères voulus (lint, tests unitaires, ...) et donc prêt à passer à la phase de déploiement
  2. Le code contient une erreur qui est généralement retourné par le gestionnaire de version lors du build, empêchant la contribution d’accéder à la prochaine phase.
Responsive image

Intérêt pour les entreprises


Les valeurs ajoutées de l’Intégration Continue pour les entreprises de logicielles sont multiples. Tout d’abord il y a l’argument de la qualité qui est indéniable auprès des clients, mais aussi l’efficacité engendré par cette architecture car cela permet d’éviter de déployer des versions de logicielles contenant des erreurs, mais aussi de faciliter la relecture de code puisqu’elle est effectuée automatiquement (selon les paramètres de l’intégration continue).

Certes, la mise en place de cette architecture prend du temps, mais c’est un sacrifice nécessaire afin de suivre les bonnes pratiques et de profiter des avantages au long terme de l’Intégration Continue. Enfin, plus il y a de développeurs dans l’entreprise, plus les avantages de l’intégration continue sont notables.

Outils d'intégration continue


Nom Site officiel Avantages Désavantages Prix
GitHub Actions documentaton Très facile à prendre en main, pas besoin d'installation Nécéssite de d'utiliser GitHub comme dépôt de fichiers, peu personnalisable Gratuit
Gitlab CI documentaton Bonne interface graphique pour visualiser les tests Problème de scalabilité Gratuit
Jenkins Site vitrine Open-source et compatible avec tous les OS, facile à installer Moins complet que les autres outils Gratuit
Circle CI documentaton Privé et auto-scale, teste rapidement et très personnalisable l'offre gratuite est moins bien efficace que les autres (1 job à la fois) Freenium

Outils de veille utilisés


  • Google actualités avec une recherche portant sur les 3 premières pages
  • Twitter avec #devops #ContinuousIntegration #CI
  • Youtube avec la recherche avancée
  • Google alertes en choisissant l’article le plus pertinent de tous les articles retournés

Ma démarche


Ma veille technologique contient des articles, mais aussi des vidéos et des guides contenant des explications qui m’ont permis de mieux comprendre le concept, mais aussi de commencer à intégrer cette pratique au sein de mes projets afin d’apprécier les avantages et les inconvénients de l’Intégration continue.