|
@@ -40,7 +40,7 @@ pipeline {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 2. Installation des dépendances et tests unitaires Angular
|
|
// 2. Installation des dépendances et tests unitaires Angular
|
|
|
- stage('Unit Tests') {
|
|
|
|
|
|
|
+ stage('Unit Tests') {
|
|
|
agent {
|
|
agent {
|
|
|
docker {
|
|
docker {
|
|
|
image 'cypress/browsers:node14.17.0-chrome91-ff89'
|
|
image 'cypress/browsers:node14.17.0-chrome91-ff89'
|
|
@@ -50,18 +50,49 @@ pipeline {
|
|
|
environment {
|
|
environment {
|
|
|
CHROME_BIN = '/usr/bin/google-chrome'
|
|
CHROME_BIN = '/usr/bin/google-chrome'
|
|
|
NODE_OPTIONS = '--max-old-space-size=4096'
|
|
NODE_OPTIONS = '--max-old-space-size=4096'
|
|
|
|
|
+ DISPLAY = ':99'
|
|
|
}
|
|
}
|
|
|
steps {
|
|
steps {
|
|
|
dir('angular-client') {
|
|
dir('angular-client') {
|
|
|
sh '''
|
|
sh '''
|
|
|
|
|
+ echo "🔧 Configuration de l'environnement"
|
|
|
|
|
+ export DISPLAY=:99
|
|
|
|
|
+ Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
|
|
|
|
|
+
|
|
|
echo "✅ Installation des dépendances"
|
|
echo "✅ Installation des dépendances"
|
|
|
npm install --legacy-peer-deps
|
|
npm install --legacy-peer-deps
|
|
|
|
|
|
|
|
- echo "🚀 Lancement des tests"
|
|
|
|
|
- npx ng test --no-watch --no-progress --browsers=ChromeHeadlessCI
|
|
|
|
|
|
|
+ echo "🧪 Vérification de Chrome"
|
|
|
|
|
+ google-chrome --version
|
|
|
|
|
+
|
|
|
|
|
+ echo "🚀 Lancement des tests unitaires avec couverture"
|
|
|
|
|
+ npx ng test --no-watch --no-progress --browsers=ChromeHeadlessCI --code-coverage
|
|
|
'''
|
|
'''
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ post {
|
|
|
|
|
+ always {
|
|
|
|
|
+ // Publier le rapport de couverture HTML
|
|
|
|
|
+ publishHTML([
|
|
|
|
|
+ allowMissing: false,
|
|
|
|
|
+ alwaysLinkToLastBuild: false,
|
|
|
|
|
+ keepAll: true,
|
|
|
|
|
+ reportDir: 'angular-client/coverage/fatboar-burger',
|
|
|
|
|
+ reportFiles: 'index.html',
|
|
|
|
|
+ reportName: 'Code Coverage Report',
|
|
|
|
|
+ reportTitles: 'Coverage Report'
|
|
|
|
|
+ ])
|
|
|
|
|
+
|
|
|
|
|
+ // Archiver les artefacts de couverture
|
|
|
|
|
+ archiveArtifacts artifacts: 'angular-client/coverage/**/*', fingerprint: true
|
|
|
|
|
+ }
|
|
|
|
|
+ failure {
|
|
|
|
|
+ echo '❌ Tests échoués - Vérifiez les logs ci-dessus'
|
|
|
|
|
+ }
|
|
|
|
|
+ success {
|
|
|
|
|
+ echo '✅ Tests réussis avec couverture générée'
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
// 3. Analyse SonarQube pour la qualité du code
|
|
// 3. Analyse SonarQube pour la qualité du code
|
|
|
// stage('SonarQube Analysis') {
|
|
// stage('SonarQube Analysis') {
|
|
@@ -92,14 +123,14 @@ pipeline {
|
|
|
// }
|
|
// }
|
|
|
|
|
|
|
|
// 5. Build et déploiement des services
|
|
// 5. Build et déploiement des services
|
|
|
- stage('Build & Deploy') {
|
|
|
|
|
- steps {
|
|
|
|
|
- sh """
|
|
|
|
|
- docker-compose -f ${env.COMPOSE_FILE} build --no-cache
|
|
|
|
|
- docker-compose -f ${env.COMPOSE_FILE} up -d --force-recreate --remove-orphans
|
|
|
|
|
- """
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // stage('Build & Deploy') {
|
|
|
|
|
+ // steps {
|
|
|
|
|
+ // sh """
|
|
|
|
|
+ // docker-compose -f ${env.COMPOSE_FILE} build --no-cache
|
|
|
|
|
+ // docker-compose -f ${env.COMPOSE_FILE} up -d --force-recreate --remove-orphans
|
|
|
|
|
+ // """
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
|
|
|
// 6. Lancement des backups après déploiement
|
|
// 6. Lancement des backups après déploiement
|
|
|
stage('Backup') {
|
|
stage('Backup') {
|