• 1. Introduction

  • 2. Étapes de mise en place

  • 2.1. Préparer l’application Node.js

  • 2.2. Dockeriser l’application

  • 2.3. Créer le workflow GitHub Actions

  • 2.4. Déploiement automatique

  • 3. Bonnes pratiques et optimisations

  • 4. Conclusion

mise en place d’une pipeline ci/cd pour une application node.js avec github actions et docker

Image de mise en place d’une pipeline ci/cd pour une application node.js avec github actions et docker

Introduction

Automatiser la construction, les tests et le déploiement d’une application Node.js permet de gagner en fiabilité et en rapidité. Dans ce tutoriel, vous apprendrez à créer une pipeline CI/CD avec Docker et GitHub Actions. À la clé : livraisons fréquentes, validation automatique et rollback simplifié.

Étapes de mise en place

1. Préparer l’application Node.js

  1. Initialisez votre projet :
    npm init -y  
    npm install express --save
  2. Ajoutez un script de test simple dans package.json :
    "scripts": {  
      "test": "mocha tests/**/*.spec.js"  
    }

2. Dockeriser l’application

# Dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "src/index.js"]

Commande de build et test local : docker build -t mon-app-node . docker run -p 3000:3000 mon-app-node

3. Créer le workflow GitHub Actions


name: CI & CD

on:
  push:
    branches: [ main ]

jobs:
  build-test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 18

      - name: Install dependencies
        run: npm ci

      - name: Run tests
        run: npm test

      - name: Build Docker image
        run: docker build -t ${{ github.repository }}:${{ github.sha }} .

      - name: Push to Docker Hub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKERHUB_USER }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      - run: docker push ${{ github.repository }}:${{ github.sha }}  
  • Déclencheur : chaque push sur main.
  • Secrets GitHub : DOCKERHUB_USER et DOCKERHUB_TOKEN.

4. Déploiement automatique

  1. Ajoutez un job deploy qui déclenche un SSH vers votre serveur ou utilise votre registry cloud (AWS, GCP, Azure).
  2. Exemple d’étape pour VPS :
    - name: Deploy via SSH
      uses: appleboy/ssh-action@v0.1.7
      with:
        host: ${{ secrets.SERVER_HOST }}
        username: deploy
        key: ${{ secrets.SERVER_SSH_KEY }}
        script: |
          docker pull ${{ github.repository }}:${{ github.sha }}
          docker stop mon-app || true
          docker rm mon-app || true
          docker run -d --name mon-app -p 3000:3000 ${{ github.repository }}:${{ github.sha }}

Bonnes pratiques et optimisations

  • Cachez le dossier ~/.npm pour accélérer les installations (actions/cache@v3).
  • Scannez vos images Docker avec trivy ou clair pour détecter les failles.
  • Séparez les workflows « build-test » et « deploy » pour éviter les redéploiements en cas d’échec des tests.
  • Versionnez vos images avec des tags sémantiques (Git tags ou numéro de version).

Conclusion

Grâce à GitHub Actions et Docker, vous disposez désormais d’une pipeline CI/CD robuste pour votre application Node.js. Cette automatisation réduit drastiquement les erreurs humaines et accélère vos mises en production, un atout clé pour tout projet SaaS moderne.

Envie d’un accompagnement sur mesure ou d’une montée en compétences de vos équipes ? Contactez-nous pour en discuter.

Image de asana vs trello vs monday.com : quel outil de gestion de projet choisir en 2025?

asana vs trello vs monday.com : quel outil de gestion de projet choisir en 2025?

Comparez en détail Asana, Trello et monday.com pour choisir en 2025 l’outil de gestion de projet qui booste collaboration, automatisation et efficacité
Image de postman v10 autoassist : comment l’ia révolutionne vos tests d’api

postman v10 autoassist : comment l’ia révolutionne vos tests d’api

Découvrez comment Postman v10 AutoAssist utilise l’IA pour générer en un clic vos tests d’API, optimiser vos scripts pré-requête et votre CI/CD.
Image de integration de chatgpt dans un crm sur-mesure avec node.js et typescript : tutoriel technique

integration de chatgpt dans un crm sur-mesure avec node.js et typescript : tutoriel technique

Découvrez comment intégrer l’API ChatGPT dans un CRM sur-mesure en Node/TS, créer un endpoint REST sécurisé et offrir des réponses IA à vos commerciaux.
DEVIS GRATUIT

Un projet en tête ? Vous avez des questions ?

Contactez nous pour recevoir un devis gratuitement, des réponses à vos questions ou une séance de consulting offerte avec l'un de nos experts :

Femme en chemise jaune