🚀 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 & Answers

A question about this lesson? The AI replies automatically.

Your questions and the AI's answers are public and enrich the course for everyone. Your email is used only for authentication (legal basis: legitimate interest, retention: 3 years). Privacy policy.