Mise à jour de index.js

This commit is contained in:
soufiane 2025-11-03 19:36:07 +01:00
parent 4312633bdb
commit 3e6bd6e409
2 changed files with 13 additions and 29 deletions

40
Jenkinsfile vendored
View File

@ -1,17 +1,15 @@
pipeline { pipeline {
agent any agent any
// 🔁 Vérifie le code toutes les minutes (ou via Webhook Gitea)
triggers { triggers {
pollSCM('* * * * *') // Vérifie toutes les 2 minutes les changements sur Gitea
pollSCM('H/2 * * * *')
} }
// ⚙️ Paramètre pour choisir lenvironnement
parameters { parameters {
choice(name: 'ENV', choices: ['dev', 'preprod', 'prod'], description: 'Choisir lenvironnement de déploiement') choice(name: 'ENV', choices: ['dev', 'preprod', 'prod'], description: 'Choisir lenvironnement de déploiement')
} }
// 🌍 Variables globales
environment { environment {
REGISTRY_URL = "registry.wk-archi-o24a-15m-g3.fr" REGISTRY_URL = "registry.wk-archi-o24a-15m-g3.fr"
IMAGE_NAME = "the-tip-top-backend" IMAGE_NAME = "the-tip-top-backend"
@ -20,10 +18,6 @@ pipeline {
} }
stages { stages {
/* ───────────────────────────────
* 1⃣ Checkout du code source
* ─────────────────────────────── */
stage('Checkout') { stage('Checkout') {
steps { steps {
echo "📦 Récupération du code source depuis Gitea..." echo "📦 Récupération du code source depuis Gitea..."
@ -31,9 +25,6 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 2⃣ Tests qualité et unitaires
* ─────────────────────────────── */
stage('Tests & Qualité') { stage('Tests & Qualité') {
steps { steps {
echo "🧪 Lancement des tests et analyse de code..." echo "🧪 Lancement des tests et analyse de code..."
@ -45,9 +36,14 @@ pipeline {
} }
} }
/* ─────────────────────────────── stage('Show Environment Info') {
* 3⃣ Build de limage Docker steps {
* ─────────────────────────────── */ echo "🌍 Environnement : ${params.ENV}"
echo "📦 Image : ${REGISTRY_URL}/${IMAGE_NAME}:${TAG}"
echo "📂 Dossier de déploiement : ${DEPLOY_PATH}"
}
}
stage('Build Docker image') { stage('Build Docker image') {
steps { steps {
echo "🐳 Construction de limage Docker backend..." echo "🐳 Construction de limage Docker backend..."
@ -58,9 +54,6 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 4⃣ Push vers le registre privé
* ─────────────────────────────── */
stage('Push to Registry') { stage('Push to Registry') {
steps { steps {
echo "📤 Envoi de limage vers le registre Docker privé..." echo "📤 Envoi de limage vers le registre Docker privé..."
@ -74,9 +67,6 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 5⃣ Sauvegarde avant déploiement
* ─────────────────────────────── */
stage('Backup Before Deploy') { stage('Backup Before Deploy') {
steps { steps {
echo "💾 Exécution du script de sauvegarde avant déploiement..." echo "💾 Exécution du script de sauvegarde avant déploiement..."
@ -90,9 +80,6 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 6⃣ Déploiement du backend
* ─────────────────────────────── */
stage('Deploy') { stage('Deploy') {
steps { steps {
echo "🚀 Déploiement du backend sur ${params.ENV}..." echo "🚀 Déploiement du backend sur ${params.ENV}..."
@ -109,9 +96,6 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 7⃣ Vérification du déploiement
* ─────────────────────────────── */
stage('Health Check') { stage('Health Check') {
steps { steps {
echo "🩺 Vérification du backend après déploiement..." echo "🩺 Vérification du backend après déploiement..."
@ -129,7 +113,7 @@ pipeline {
returnStdout: true returnStdout: true
).trim() ).trim()
if (statusCode == '200') { if (statusCode in ['200', '301', '302']) {
echo "✅ Backend ${params.ENV} opérationnel (HTTP ${statusCode}) après ${i} essai(s)" echo "✅ Backend ${params.ENV} opérationnel (HTTP ${statusCode}) après ${i} essai(s)"
break break
} else { } else {
@ -138,7 +122,7 @@ pipeline {
} }
} }
if (statusCode != '200') { if (!(statusCode in ['200', '301', '302'])) {
error("❌ Health check échoué sur ${params.ENV} - code HTTP ${statusCode}") error("❌ Health check échoué sur ${params.ENV} - code HTTP ${statusCode}")
} }
} }

View File

@ -34,7 +34,7 @@ app.get("/db-check", async (req, res) => {
// --- Route daccueil (fix pour 'Cannot GET /') --- // --- Route daccueil (fix pour 'Cannot GET /') ---
app.get("/", (req, res) => { app.get("/", (req, res) => {
res.json({ message: "✅ API Thé Tip Top en ligne et opérationnelle 000 !" }); res.json({ message: "✅ API Thé Tip Top en ligne et opérationnelle 1000 !" });
}); });
// --- Monitoring Prometheus --- // --- Monitoring Prometheus ---