🚀 Module 40
5

GitHub Actions : construire votre pipeline de déploiement automatique

Leçon 5 / 5 — 2h

« Pour atteindre la vérité, il faut une fois dans la vie douter de tout. »

R

René Descartes

Le Méthodique · 1596-1650

L'anatomie d'un pipeline CI/CD e-commerce

Un pipeline GitHub Actions pour un site e-commerce headless se déroule en quatre phases séquentielles. Chaque phase est un garde-fou : si elle échoue, le déploiement s'arrête avant d'atteindre la production.

  1. Phase 1 — Build : Compilation du front Nuxt 3. Si le build échoue, rien n'est envoyé sur le serveur.
  2. Phase 2 — Tests : Vérification des URLs critiques en préproduction (curl -I, codes HTTP).
  3. Phase 3 — Deploy préproduction : Transfert via SSH + archive tar, reload PM2 Graceful (Zero-Downtime).
  4. Phase 4 — Validation post-deploy : Vérification que la préproduction répond en 200 sur les pages clés avant de libérer le déploiement production.

Structure du fichier workflow

name: Deploy Preprod\non:\n  push:\n    branches: [preprod]\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - name: Build Nuxt\n        run: npm ci && npm run build\n      - name: Deploy via SSH\n        uses: appleboy/ssh-action@v1\n        with:\n          host: ${{ secrets.VPS_HOST }}\n          username: ${{ secrets.VPS_USER }}\n          key: ${{ secrets.SSH_PRIVATE_KEY }}\n          script: |\n            cd /srv/hub\n            ./deploy-nuxt.sh --all\n      - name: Verify deploy\n        run: |\n          sleep 5\n          curl -sf https://preprod.votresite.fr | grep -q "200"\n

Les trois règles non-négociables du pipeline

  • Jamais de docker restart dans le script de deploy — utiliser exclusivement le graceful reload PM2 pour garantir le zero-downtime.
  • Secrets dans GitHub Secrets, jamais en clair dans le workflow — VPS_HOST, SSH_PRIVATE_KEY, ANTHROPIC_API_KEY.
  • Un commit = un deploy tracé — chaque exécution du pipeline est visible dans l'onglet Actions, avec logs complets et possibilité de re-run manuel.

Ce pipeline devient la colonne vertébrale de votre processus de livraison. Il transforme un geste risqué (déployer) en un acte de confiance (pousser sur la branche preprod).

A retenir : Commencez par un pipeline minimaliste : build + SSH deploy + curl de vérification. Ajoutez les phases de test une fois que le <a href="/dictionnaire/deploiement" title="Définition : Déploiement" class="dict-link">déploiement</a> automatique de base fonctionne — ne cherchez pas la perfection avant la mise en production.

Questions & Réponses

Une question sur cette leçon ? L'IA répond automatiquement.

Vos questions et les réponses IA sont publiques et enrichissent le cours pour tous. Votre email est utilisé uniquement pour l'authentification (base légale : intérêt légitime, durée : 3 ans). Politique de confidentialité.