Intégration Continue

L'intégration continue (IC) est le processus qui consiste à automatiser la construction et le test du code chaque fois qu'un membre de l'équipe apporte des modifications au contrôle de version.
L'intégration continue encourage les développeurs à partager leur code et leurs tests unitaires en fusionnant leurs modifications dans un référentiel de contrôle de version partagé après chaque petite tâche.
L'envoi de code déclenche un système de construction automatisé qui récupère le dernier code du dépôt partagé et construit, teste et valide la branche maître complète (également appelée trunk ou main).

L'intégration continue est apparue comme une meilleure pratique car les développeurs de logiciels travaillent souvent de manière isolée, et ils doivent ensuite intégrer leurs modifications au reste de la base de code de l'équipe.
Attendre des jours ou des semaines pour intégrer le code crée de nombreux conflits de fusion, des bugs difficiles à corriger, des stratégies de code divergentes et des efforts redondants.
L'intégration continue exige que le code de l'équipe de développement soit fusionné en permanence à une branche de contrôle de version partagée pour éviter ces problèmes.

L'intégration continue maintient la branche maître propre.
Les équipes peuvent s'appuyer sur des systèmes modernes de contrôle de version tels que Git pour créer des branches de fonctionnalités à courte durée de vie afin d'isoler leur travail.
Un développeur soumet une "pull request" lorsque la fonctionnalité est complète et, sur approbation de la pull request, les changements sont fusionnés dans la branche master.

Ensuite, le développeur peut supprimer la branche de fonctionnalité précédente. Les équipes de développement répètent le processus pour un travail supplémentaire.
L'équipe peut établir des politiques de branche pour s'assurer que la branche master répond aux critères de qualité souhaités.

Les équipes utilisent des définitions de build pour s'assurer que chaque commit vers la branche master déclenche les processus automatisés de build et de test.
La mise en œuvre de cette manière de l'intégration continue permet de s'assurer que les bugs sont détectés plus tôt dans le cycle de développement, ce qui les rend moins coûteux à corriger. Des tests automatisés sont effectués pour chaque build afin de s'assurer que les builds conservent une qualité constante.