Introduction

Pour un SaaS ou un ERP/CRM en Node.js, la qualité du code et la sécurité sont des enjeux clés. Intégrer SonarQube à votre CI/CD Jenkins permet de détecter bugs, vulnérabilités et défauts de performance dès le build. Ce guide technique détaille chaque étape : installation, configuration, Jenkinsfile, et analyse de résultats.

Prérequis

  • Jenkins v2.375+ (voir doc)
  • SonarQube Community Edition 9.x installé (Docker ou VM)
  • Projet Node.js (v16+) avec package.json
  • Accès admin Jenkins pour installer le plugin SonarQube Scanner

Étape 1 : installer et configurer SonarQube

  1. Lancer SonarQube en Docker :
    docker run -d --name sonarqube -p 9000:9000 sonarqube:9.9-community
  2. Accéder à http://localhost:9000, créer un jeton d’analyse (sonar-token).
  3. Configurer la connexion dans Jenkins :
    • Menu Manage Jenkins → Configure System → SonarQube servers → Add.
    • URL : http://sonarqube:9000, Token : sonar-token.

Étape 2 : préparer votre projet Node.js

Ajoutez la configuration Sonar dans package.json :

{
  "name": "mon-saas",
  "version": "1.0.0",
  "scripts": {
    "sonar": "sonar-scanner \
      -Dsonar.projectKey=mon-saas \
      -Dsonar.sources=./src \
      -Dsonar.host.url=http://sonarqube:9000 \
      -Dsonar.login=${SONAR_TOKEN}"
  }
}

Installez le scanner :

npm install --save-dev sonar-scanner

Étape 3 : créer le Jenkinsfile

Placez ce Jenkinsfile à la racine de votre repo Git :

pipeline {
  agent any
  environment {
    SONAR_TOKEN = credentials('sonar-token')
  }
  stages {
    stage('Checkout') {
      steps { checkout scm }
    }
    stage('Install') {
      steps { sh 'npm ci' }
    }
    stage('Build') {
      steps { sh 'npm run build' }
    }
    stage('SonarQube Analysis') {
      steps {
        withSonarQubeEnv('SonarQube') {
          sh 'npm run sonar'
        }
      }
    }
    stage('Quality Gate') {
      steps {
        timeout(time: 1, unit: 'HOURS') {
          waitForQualityGate abortPipeline: true
        }
      }
    }
  }
  post {
    failure {
      echo 'Qualité non atteinte – pipeline aborted.'
    }
  }
}

Points clés :

  • withSonarQubeEnv('SonarQube') : active l’intégration plugin.
  • waitForQualityGate : bloque le déploiement si le seuil est dépassé.

Étape 4 : exécuter et interpréter les résultats

  • Lancez votre pipeline → l’analyse SonarQube démarre.
  • À la fin, consultez la page projet dans SonarQube (http://localhost:9000/dashboard?id=mon-saas).
  • Vérifiez :
    • Coverage minimal (> 80%)
    • Pas de vulnérabilité critique (OWASP 2026)
    • Complexité cyclomatique raisonnable (< 10 par fonction)

Bonnes pratiques

  • Versionnez sonar-project.properties pour ajouter règles custom.
  • Séparez analysés unitaires (tests) et code source.
  • Intégrez dans chaque merge request pour feedback rapide.
  • Automatisez l’envoi de rapports par Slack ou email.
  • Combinez SAST Sonar avec DAST (par ex. OWASP ZAP) pour audit complet.

Conclusion

En ajoutant SonarQube à votre pipeline CI/CD SaaS, vous sécurisez la qualité de votre code, réduisez les risques et facilitez la montée en charge. Un suivi rigoureux des indicateurs vous assure un ROI rapide grâce à moins de bugs en production et une maintenance simplifiée.

Prêt à franchir le cap ? Contactez-nous pour un audit CI/CD personnalisé.