Mise à jour de index.js

This commit is contained in:
soufiane 2025-11-03 20:04:27 +01:00
parent 687fa5e57d
commit 72440a7af5
2 changed files with 41 additions and 7 deletions

46
Jenkinsfile vendored
View File

@ -1,15 +1,21 @@
pipeline { pipeline {
agent any agent any
// 🔁 Vérifie automatiquement toutes les 2 minutes sil y a des commits sur Gitea
triggers { triggers {
// Vérifie toutes les 2 minutes les changements sur Gitea
pollSCM('H/2 * * * *') pollSCM('H/2 * * * *')
} }
// ⚙️ Choix de lenvironnement de déploiement
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"
@ -18,6 +24,10 @@ pipeline {
} }
stages { stages {
/* ───────────────────────────────
* 1⃣ Récupération 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..."
@ -25,6 +35,9 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 2⃣ Tests de 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..."
@ -36,6 +49,9 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 3⃣ Informations de contexte
* ─────────────────────────────── */
stage('Show Environment Info') { stage('Show Environment Info') {
steps { steps {
echo "🌍 Environnement : ${params.ENV}" echo "🌍 Environnement : ${params.ENV}"
@ -44,29 +60,38 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 4⃣ Construction de limage Docker
* ─────────────────────────────── */
stage('Build Docker image') { stage('Build Docker image') {
steps { steps {
echo "🐳 Construction de limage Docker backend..." echo "🐳 Construction de limage Docker backend..."
sh ''' sh """
docker build -t ${REGISTRY_URL}/${IMAGE_NAME}:${TAG} . docker build -t ${REGISTRY_URL}/${IMAGE_NAME}:${TAG} .
docker tag ${REGISTRY_URL}/${IMAGE_NAME}:${TAG} ${REGISTRY_URL}/${IMAGE_NAME}:latest docker tag ${REGISTRY_URL}/${IMAGE_NAME}:${TAG} ${REGISTRY_URL}/${IMAGE_NAME}:latest
''' """
} }
} }
/* ───────────────────────────────
* 5⃣ Envoi au registre Docker 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é..."
withCredentials([usernamePassword(credentialsId: 'registry-credentials', usernameVariable: 'REG_USER', passwordVariable: 'REG_PASS')]) { withCredentials([usernamePassword(credentialsId: 'registry-credentials', usernameVariable: 'REG_USER', passwordVariable: 'REG_PASS')]) {
sh ''' sh """
echo "$REG_PASS" | docker login ${REGISTRY_URL} -u "$REG_USER" --password-stdin echo "$REG_PASS" | docker login ${REGISTRY_URL} -u "$REG_USER" --password-stdin
docker push ${REGISTRY_URL}/${IMAGE_NAME}:${TAG} docker push ${REGISTRY_URL}/${IMAGE_NAME}:${TAG}
docker push ${REGISTRY_URL}/${IMAGE_NAME}:latest docker push ${REGISTRY_URL}/${IMAGE_NAME}:latest
''' """
} }
} }
} }
/* ───────────────────────────────
* 6⃣ 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..."
@ -80,6 +105,9 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 7⃣ Déploiement Docker Compose
* ─────────────────────────────── */
stage('Deploy') { stage('Deploy') {
steps { steps {
echo "🚀 Déploiement du backend sur ${params.ENV}..." echo "🚀 Déploiement du backend sur ${params.ENV}..."
@ -96,6 +124,9 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 8⃣ 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..."
@ -130,6 +161,9 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 🔚 Post actions
* ─────────────────────────────── */
post { post {
success { success {
echo "✅ Pipeline backend ${params.ENV} terminé avec succès !" echo "✅ Pipeline backend ${params.ENV} terminé avec succès !"

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 10000 !" }); res.json({ message: "✅ API Thé Tip Top en ligne et opérationnelle 100001 !" });
}); });
// --- Monitoring Prometheus --- // --- Monitoring Prometheus ---