CI (pour Continuous Integration - Intégration Continue en français), et CD (pour Continuous Deployment - Déploiement Continu en français) sont des termes qui
regroupent des pratiques d'ingénieurie logicielle moderne, dont le but est de faciliter l'intégration de nouveau code dans un logiciel existant.
C'est une pratique très répandue dans les développements logiciels en entreprise depuis les 10 dernières années.
Le principe de l'intégration continue est de proposer aux développeurs d'un projet, un feedback rapide sur l'état du logiciel après application de modifications de code.
Cela consiste principalement en :
la compilation du logiciel : pour vérifier que le nouveau code compile bien avec l'existant
l'exécution des tests : pour vérifier que le logiciel produit se comporte toujours comme attendu (non-régression)
une analyse qualimétrique : pour vérifier que les normes de développement sont bien suivies
une analyse de sécurité : pour s'assurer que le logiciel est toujours aux normes de sécurités attendues
Le déploiement continue consiste lui en la mise à disposition rapide du logiciel aux équipes de test ou aux utilisateurs,
encore une fois dans le but d'obtenir un feedback rapide sur les fonctionnalités développées, et de détecter au plus tôt les bugs éventuels.
Le déploiement continue consiste donc le plus souvent en:
la production d'un binaire installable (un fichier .war par exemple) :
pour vérifier que la production d'un binaire est toujours possible,
et pour avoir toujours à disposition une version "prête à être installée"
l'installation de binaire sur un ou plusieurs serveurs ou environnements de test
l'installation éventuelle de ce binaire sur un ou plusieurs serveurs ou environnements de production
Il existe de nombreaux produits permettant de mettre en place une intégration continue.
Certains de ces produits sont au plus proche du code, comme Gitlab-CIet Github Actions,
d'autres sont externes comme Jenkins ou travis-ci.
Gitlab-CI
Gitlab-CI est le produit d'intégration continue intégré à Gitlab. Il est gratuit et disponible directement pour tous les projets
hébergés sur gitlab.com
La vidéo suivante présente la mise en place d'un pipeline d'intégration continue en utilisant Gitlab-CI.
La documentation officielle sur docs.gitlab.com (en anglais)
La référence des directives disponibles pour le fichier .gitlab-ci.yml sur docs.gitlab.com (en anglais)
Github Actions
Github Actions est le produit d'intégration continue intégré à Github. Il est gratuit et disponible directement pour tous les projets
hébergés sur github.com
La vidéo suivante présente la mise en place d'un pipeline d'intégration continue en utilisant Github Actions.