1. Introduction : Pourquoi Automatiser ?

1.1. Le Défi du Développement Logiciel

La création d'un logiciel, de sa conception à sa fin de vie, est un processus complexe que l'on nomme la gestion du cycle de vie du logiciel (PLM). Ce cycle est jalonné de nombreuses étapes critiques qui doivent être rigoureusement suivies.

La répétition constante de certaines de ces étapes, comme les tests et le déploiement, est une source fréquente d'erreurs, d'oublis, de fatigue, mais aussi d'ennui et de déconcentration liés aux interruptions.

1.2. Le Monde Avant l'Automatisation

Imaginez un développeur qui vient de terminer une nouvelle fonctionnalité. Il doit alors penser à lancer manuellement les tests unitaires. S'il n'oublie pas, il doit ensuite lancer les tests d'intégration. Enfin, s'il y pense toujours, il peut procéder au déploiement.

Dans ce scénario, les oublis sont presque garantis. Cette approche manuelle est fastidieuse et peu fiable, mettant en péril la qualité du produit final.

1.3. La Solution : L'Automatisation

La vraie solution à ce défi est l'automatisation. Son objectif principal est simple : gérer les actions répétitives et identiques via des programmes lancés automatiquement lors des modifications du code.

Tout comme une chaîne de production industrielle utilise des automates pour le contrôle qualité à chaque étape, l'automatisation dans le développement logiciel permet d'intégrer une notion de qualité et de conformité fonctionnelle à chaque changement.

Cette philosophie, qui vise à transformer une suite de tâches manuelles et fragiles en un processus industriel fiable, est formalisée par un concept clé du génie logiciel moderne : la CI/CD.

2. Les Concepts Clés : Qu'est-ce que la CI/CD ?

2.1. Définir la CI/CD

L'acronyme CI/CD peut avoir deux significations principales, décrivant deux niveaux d'automatisation.

Concept Description
Continuous Integration/Continuous Delivery C'est la signification la plus commune. Chaque fois que du code est poussé, il est automatiquement compilé et testé. Le logiciel est ensuite proposé au client pour validation avant un déploiement qui reste une action manuelle et délibérée.
Continuous Integration/Continuous Deployment Ce flux est similaire, mais le déploiement en production est entièrement automatisé de bout en bout, supprimant l'étape de validation manuelle. C'est une approche plus complexe qui vise à empêcher les bugs d'atteindre les utilisateurs finaux.

2.2. Les Outils de la CI/CD