Intégration et Déploiement Continus (CI/CD)

Automatiser les vérifications et le déploiement de vos projets

DevOps
Système & Réseau
Automatiser les tests, la compilation et la livraison de code grâce aux pipelines de CI/CD modernes.

Le CI/CD est le cœur de l’ingénierie logicielle moderne. Il transforme un processus manuel, lent et risqué en un flux de travail entièrement automatisé et sécurisé.

🤖 Démystifier les acronymes : C’est quoi le CI/CD ?

Pour introduire le sujet, imaginez le CI/CD comme un robot assistant posté entre votre ordinateur de développement et le serveur qui héberge votre site web. Ce robot s’occupe de toutes les tâches répétitives, techniques et critiques à chaque fois que vous modifiez votre code.

  • CI (Intégration Continue / Continuous Integration) : C’est la phase de vérification. Lorsque plusieurs développeurs travaillent sur un projet commun, ils fusionnent leur code plusieurs fois par jour. À chaque ajout, le robot vérifie automatiquement que le code est propre, bien formaté et qu’il ne casse rien d’existant.
  • CD (Livraison ou Déploiement Continu / Continuous Delivery / Deployment) : C’est la phase de distribution. Dès que les vérifications (CI) sont validées, le robot emballe automatiquement l’application et l’envoie sur les serveurs de production pour les utilisateurs.

🏗️ L’Anatomie d’un Pipeline en Pratique

En pratique, le CI/CD prend la forme d’un Pipeline (ou Workflow), c’est-à-dire un enchaînement d’étapes automatisées. Avec GitHub Actions, ce pipeline est défini par un simple fichier de configuration au format .yml ou .yaml placé dans le dossier .github/workflows/ du projet.

Voici les concepts fondamentaux qui composent un pipeline :

  1. L’Événement (Trigger) : Ce qui réveille le robot. Exemple : “À chaque fois que quelqu’un pousse (push) du code sur la branche main, lance le pipeline.”
  2. Le Runner (L’ordinateur) : Une machine virtuelle temporaire (souvent sous Linux Ubuntu) fournie par GitHub qui démarre uniquement pour exécuter vos commandes.
  3. Les Jobs et les Steps : La liste des corvées à effectuer. Un pipeline contient un ou plusieurs Jobs (ex: tester, compiler, déployer), chacun divisé en étapes chronologiques (Steps).

Simulateur de Pipeline CI/CD

Expérimentez ci-dessous avec les paramètres du pipeline. Cochez ou décochez les étapes de configuration pour observer comment le robot réagit lors d’une intégration.

Simulateur de Pipeline CI/CD

Activez ou désactivez les conditions du projet ci-dessous pour modifier le comportement du pipeline :

🛡️ Les Étapes Incontournables du Pipeline

Pour maximiser la stabilité et la sécurité du projet, le pipeline s’appuie sur quatre étapes clés :

A. Le Linting (La grammaire)

Le Linter (comme ESLint ou Prettier) analyse statiquement le code sans l’exécuter. Il garantit le respect des règles de style (pas de variables déclarées inutilisées, guillemets homogènes, indentation correcte).

  • Objectif CI : Bloquer le code “sale” ou non conforme avant qu’il n’entre dans la branche principale.

B. Les Tests automatisés (La sécurité)

On exécute des scripts de tests unitaires ou d’intégration (comme Jest ou Vitest).

  • Objectif CI : Si un test échoue (par exemple, un bouton de connexion ne fonctionne plus suite à une modification), le pipeline s’arrête en erreur et empêche le déploiement du code cassé.

C. La gestion des Secrets (La confidentialité)

Les applications nécessitent souvent des clés d’accès ou des identifiants pour communiquer avec les serveurs d’hébergement. Ces informations ne doivent jamais être écrites en clair dans le code source.

  • Pratique : On utilise un coffre-fort sécurisé (les GitHub Secrets). Le pipeline récupère ces clés de manière sécurisée uniquement pendant son exécution pour s’authentifier.

D. Le Build et le Déploiement (L’aboutissement)

Pour les sites web modernes, le site est compilé (minification du CSS/JS, optimisation des images) pour créer les fichiers statiques finaux (le dossier de build). Ces fichiers sont ensuite envoyés sur l’hébergeur.

Panneau de Brassage des Concepts

Associez chaque concept clé du CI/CD (à gauche) à sa fonction ou description logique (à droite) pour tester vos connaissances.

Panneau de Brassage des Étapes
id label match feedback
linting Analyse statique (Linting) syntaxe ESLint et Prettier s’assurent que le code respecte les standards de qualité visuelle et syntaxique.
testing Tests automatisés logique Les tests unitaires et d’intégration valident la logique métier avant de déployer l’application.
secrets Secrets & Confidentialité securite Les secrets GitHub permettent de masquer et sécuriser les jetons de connexion et clés d’API.
build Build & Compilation compilation Cette étape prépare l’application pour la production en optimisant les bundles et ressources.
deploy Déploiement final hebergement Cette dernière étape transfère les fichiers compilés vers l’infrastructure d’hébergement.

Reliez chaque port de gauche au bon port de droite. Activez ensuite le levier pour lancer le diagnostic de connexion.

ON

OFF

Circuit alimenté Circuit coupé

Diagnostic du Pipeline