Mise à jour de index.js

This commit is contained in:
soufiane 2025-11-03 21:00:57 +01:00
parent cde50fe4f9
commit 7c93d60cae

39
Jenkinsfile vendored
View File

@ -21,24 +21,22 @@ pipeline {
} }
stages { stages {
/* ─────────────────────────────── /* ───────────────────────────────
* 1⃣ Init — Détection automatique de lenvironnement * 1⃣ Init — Détection automatique de lenvironnement
* ─────────────────────────────── */ * ─────────────────────────────── */
stage('Init') { stage('Init') {
steps { steps {
script { script {
// 🔍 Détermine la branche Git courante
def currentBranch = sh(script: "git rev-parse --abbrev-ref HEAD", returnStdout: true).trim() def currentBranch = sh(script: "git rev-parse --abbrev-ref HEAD", returnStdout: true).trim()
echo "🧭 Branche détectée : ${currentBranch}" echo "🧭 Branche détectée : ${currentBranch}"
// 🧩 Si la branche correspond à un environnement connu, on lutilise
if (["dev", "preprod", "main"].contains(currentBranch)) { if (["dev", "preprod", "main"].contains(currentBranch)) {
env.ENV = (currentBranch == "main") ? "prod" : currentBranch env.ENV = (currentBranch == "main") ? "prod" : currentBranch
} else { } else {
env.ENV = params.ENV ?: "dev" env.ENV = params.ENV ?: "dev"
} }
// 🧱 Variables de déploiement dérivées
env.TAG = "${env.ENV}-latest" env.TAG = "${env.ENV}-latest"
env.DEPLOY_PATH = "/srv/devops/the-tip-top/${env.ENV}" env.DEPLOY_PATH = "/srv/devops/the-tip-top/${env.ENV}"
@ -47,10 +45,15 @@ pipeline {
🏷️ Tag Docker = ${env.TAG} 🏷️ Tag Docker = ${env.TAG}
📂 Chemin de déploiement = ${env.DEPLOY_PATH} 📂 Chemin de déploiement = ${env.DEPLOY_PATH}
""" """
sh "ls -l ${env.DEPLOY_PATH} || echo '⚠️ Dossier non accessible depuis Jenkins'"
} }
} }
} }
/* ───────────────────────────────
* 2⃣ Checkout du code
* ─────────────────────────────── */
stage('Checkout') { stage('Checkout') {
steps { steps {
echo "📦 Récupération du code source depuis Gitea..." echo "📦 Récupération du code source depuis Gitea..."
@ -58,6 +61,9 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 3⃣ Tests & Qualité
* ─────────────────────────────── */
stage('Tests & Qualité') { stage('Tests & Qualité') {
steps { steps {
echo "🧪 Lancement des tests et analyse de code..." echo "🧪 Lancement des tests et analyse de code..."
@ -69,6 +75,9 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 4⃣ Build 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..."
@ -79,6 +88,9 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 5⃣ 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é..."
@ -92,6 +104,9 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 6⃣ Backup 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..."
@ -105,22 +120,33 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 7⃣ Déploiement
* ─────────────────────────────── */
stage('Deploy') { stage('Deploy') {
steps { steps {
echo "🚀 Déploiement du backend sur ${env.ENV}..." echo "🚀 Déploiement du backend sur ${env.ENV}..."
sh ''' sh """
if [ ! -f "${DEPLOY_PATH}/docker-compose.yml" ]; then if [ ! -f "${DEPLOY_PATH}/docker-compose.yml" ]; then
echo "❌ Fichier docker-compose.yml introuvable dans ${DEPLOY_PATH}" echo "❌ Fichier docker-compose.yml introuvable dans ${DEPLOY_PATH}"
echo "Contenu du dossier :"
ls -l ${DEPLOY_PATH}
exit 1 exit 1
fi fi
cd "${DEPLOY_PATH}" cd "${DEPLOY_PATH}"
echo "📦 Pull de l'image Docker depuis le registre..."
docker compose pull backend docker compose pull backend
echo "🔄 Recréation du conteneur backend..."
docker compose up -d --force-recreate backend docker compose up -d --force-recreate backend
''' """
} }
} }
/* ───────────────────────────────
* 8⃣ Vérification de santé
* ─────────────────────────────── */
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..."
@ -145,6 +171,9 @@ pipeline {
} }
} }
/* ───────────────────────────────
* 🔚 Post Actions
* ─────────────────────────────── */
post { post {
success { success {
echo "✅ Pipeline backend ${env.ENV} terminé avec succès !" echo "✅ Pipeline backend ${env.ENV} terminé avec succès !"