Déploiement
Déploiement • Chapitre 10 : Déploiement avec Git et GitHub

Déploiement automatique après un push

Le déploiement continu (CD - Continuous Deployment) élimine les interventions manuelles et les erreurs humaines. Comprenez la chaîne complète depuis le push local jusqu'à la mise en ligne atomique sur les serveurs de bord (Edge CDN).

⚡
Zéro Clic Humain

Un simple git push sur la branche main déclenche l'ensemble de la mise en ligne.

🏗️
Conteneur de Build Dédié

Chaque build démarre dans une VM vierge garantissant des dépendances saines.

🛑
Arrêt Immédiat si Erreur

Si les tests ou la compilation échouent, l'ancienne version reste en ligne sans coupure.

🌐
Bascule Atomique

Le trafic mondial est redirigé vers le nouveau bundle en 0 ms via mise à jour de pointeurs.

build-pipeline-logs.txt
# Extrait des logs réels générés lors d'un déploiement automatique :
2026-10-11T14:02:10Z [Vercel-Engine] Triggered by commit 7f3a9bc (feat: add order checkout)
2026-10-11T14:02:11Z [Build-Worker] Cloning repository (commit 7f3a9bc)...
2026-10-11T14:02:13Z [Build-Worker] Running "npm install --frozen-lockfile"...
2026-10-11T14:02:22Z [Build-Worker] 184 packages installed in 9.1s.
2026-10-11T14:02:23Z [Build-Worker] Running "npm run build"...
2026-10-11T14:02:35Z [Build-Worker] ✓ Production bundle generated in dist/ (Total size: 312 kB)
2026-10-11T14:02:36Z [Deploy-Edge] Deploying assets to 300+ Edge locations globally...
2026-10-11T14:02:38Z [Deploy-Edge] Routing updated: learnweb.com now points to deployment #dpl_892kL
2026-10-11T14:02:38Z [Success] ✅ Production deployment ready in 28 seconds !

Guide Approfondi & Architecture Système

1. La Magie du Déploiement Atomique (Zero-Downtime)

Autrefois, déployer par FTP écrasait les fichiers un par un :
L'Enfer du FTP classique : Pendant les 30 secondes d'écrasement des fichiers, un visiteur chargeait la moitié de l'ancien JavaScript et la moitié du nouveau HTML : le site crashait pour tous les utilisateurs en ligne !

Avec le déploiement continu moderne, le nouveau bundle est entièrement compilé dans un dossier isolé (ex: /releases/20261011_v2). Une fois le build 100% prêt et testé, le serveur web bascule un lien symbolique Linux (symlink) en 1 milliseconde. Zéro coupure de service pour les internautes !

2. Que se passe-t-il si le Build Plante ?

Si vous introduisez une erreur de syntaxe TypeScript ou si une variable d'environnement manque :
  • La commande npm run build renvoie un code d'erreur Exit 1.
  • Le pipeline s'arrête instantanément.
  • L'ancienne version en production continue de tourner sans la moindre interruption.
  • Vous recevez un email et une notification Slack/Discord avec les lignes d'erreur exactes.

Tableau des Étapes d'un Pipeline de Déploiement Continu

PhaseDurée TypiqueObjectif de Contrôle
1. Déclenchement (Trigger)100 - 300 msRéception du webhook GitHub et vérification de la branche ciblée
2. Installation Dépendances5 - 15 sInstallation des paquets déclarés dans package-lock.json
3. Build & Bundling10 - 45 sCompilation TypeScript, optimisation des images et minification CSS/JS
4. Health Check & Tests5 - 20 sExécution des tests de non-régression et contrôle de syntaxe
5. Propagation Mondiale2 - 5 sInvalidation du cache CDN et publication instantanée sur les serveurs Edge