fix: reorder stages - SonarQube (quality) before Tests
- SonarQube analysis runs first for code quality - Tests run after for code validation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
5e5e5c0a71
commit
de9e4cd337
61
Jenkinsfile
vendored
61
Jenkinsfile
vendored
|
|
@ -130,7 +130,34 @@ pipeline {
|
|||
}
|
||||
|
||||
// =====================================================================
|
||||
// ÉTAPE 4 : LINT & TESTS
|
||||
// ÉTAPE 4 : SONARQUBE - Qualité de code
|
||||
// ---------------------------------------------------------------------
|
||||
// Analyse statique du code pour détecter :
|
||||
// - Bugs potentiels
|
||||
// - Vulnérabilités de sécurité
|
||||
// - Code smells (mauvaises pratiques)
|
||||
// - Duplications de code
|
||||
// =====================================================================
|
||||
stage('📊 SonarQube Analysis') {
|
||||
agent {
|
||||
docker {
|
||||
image 'sonarsource/sonar-scanner-cli:latest'
|
||||
args '-u root'
|
||||
}
|
||||
}
|
||||
steps {
|
||||
echo "📊 Analyse SonarQube - Qualité de code..."
|
||||
withSonarQubeEnv('SonarQube') {
|
||||
sh """
|
||||
sonar-scanner
|
||||
"""
|
||||
}
|
||||
echo "✅ Analyse SonarQube terminée"
|
||||
}
|
||||
}
|
||||
|
||||
// =====================================================================
|
||||
// ÉTAPE 5 : LINT & TESTS
|
||||
// ---------------------------------------------------------------------
|
||||
// ESLint : Vérifie le style et les erreurs de code
|
||||
// Jest : Exécute les tests unitaires et d'intégration
|
||||
|
|
@ -150,9 +177,6 @@ pipeline {
|
|||
def lintStatus = sh(script: 'npm run lint', returnStatus: true)
|
||||
def testStatus = sh(script: 'npm test -- --coverage', returnStatus: true)
|
||||
|
||||
// Stash coverage report for SonarQube
|
||||
stash includes: 'coverage/**', name: 'coverage', allowEmpty: true
|
||||
|
||||
if (lintStatus != 0) {
|
||||
error "❌ ESLint a échoué - Corrigez les erreurs de style"
|
||||
}
|
||||
|
|
@ -164,35 +188,6 @@ pipeline {
|
|||
}
|
||||
}
|
||||
|
||||
// =====================================================================
|
||||
// ÉTAPE 5 : SONARQUBE
|
||||
// ---------------------------------------------------------------------
|
||||
// Analyse statique du code pour détecter :
|
||||
// - Bugs potentiels
|
||||
// - Vulnérabilités de sécurité
|
||||
// - Code smells (mauvaises pratiques)
|
||||
// - Couverture de code insuffisante
|
||||
// =====================================================================
|
||||
stage('📊 SonarQube Analysis') {
|
||||
agent {
|
||||
docker {
|
||||
image 'sonarsource/sonar-scanner-cli:latest'
|
||||
args '-u root'
|
||||
}
|
||||
}
|
||||
steps {
|
||||
// Unstash coverage report from tests
|
||||
unstash 'coverage'
|
||||
echo "📊 Analyse SonarQube en cours avec rapport de couverture..."
|
||||
withSonarQubeEnv('SonarQube') {
|
||||
sh """
|
||||
sonar-scanner
|
||||
"""
|
||||
}
|
||||
echo "✅ Analyse SonarQube terminée"
|
||||
}
|
||||
}
|
||||
|
||||
// =====================================================================
|
||||
// ÉTAPE 6 : BUILD IMAGE DOCKER
|
||||
// ---------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user