70 lines
1.6 KiB
Groovy
70 lines
1.6 KiB
Groovy
pipeline {
|
||
agent {
|
||
docker {
|
||
image 'node:20'
|
||
args '-v /var/run/docker.sock:/var/run/docker.sock'
|
||
}
|
||
}
|
||
|
||
environment {
|
||
APP_NAME = "the-tip-top-backend"
|
||
REGISTRY = "registry.wk-archi-o24a-15m-g3.fr"
|
||
IMAGE = "${REGISTRY}/${APP_NAME}:${BUILD_NUMBER}"
|
||
DEPLOY_PATH = "/srv/devops/the-tip-top"
|
||
}
|
||
|
||
stages {
|
||
|
||
stage('Checkout') {
|
||
steps {
|
||
echo "📦 Récupération du code source depuis Gitea..."
|
||
checkout scm
|
||
}
|
||
}
|
||
|
||
stage('Install dependencies') {
|
||
steps {
|
||
echo "📦 Installation des dépendances NPM..."
|
||
sh 'npm ci'
|
||
}
|
||
}
|
||
|
||
stage('Build Docker image') {
|
||
steps {
|
||
echo "🐳 Construction et tag de l’image Docker..."
|
||
sh 'docker build -t ${IMAGE} .'
|
||
}
|
||
}
|
||
|
||
stage('Push to Registry') {
|
||
steps {
|
||
echo "📤 Envoi de l’image vers le registry privé..."
|
||
withCredentials([usernamePassword(credentialsId: 'registry-creds', usernameVariable: 'USER', passwordVariable: 'PASS')]) {
|
||
sh 'echo $PASS | docker login $REGISTRY -u $USER --password-stdin'
|
||
sh 'docker push $IMAGE'
|
||
}
|
||
}
|
||
}
|
||
|
||
stage('Deploy') {
|
||
steps {
|
||
echo "🚀 Déploiement du backend via Docker Compose..."
|
||
sh """
|
||
cd ${DEPLOY_PATH}
|
||
docker compose pull backend
|
||
docker compose up -d --no-deps --build backend
|
||
"""
|
||
}
|
||
}
|
||
}
|
||
|
||
post {
|
||
success {
|
||
echo "✅ Déploiement du backend réussi !"
|
||
}
|
||
failure {
|
||
echo "❌ Échec du pipeline backend."
|
||
}
|
||
}
|
||
}
|