Files
django-core-base/deployments/Jenkinsfile
minguezsanzjuanjose 4a4d0940b3
All checks were successful
DEPLOY_MULTI_BRACH/pipeline/head This commit looks good
Update Jenkinsfile
2026-04-14 23:47:24 +02:00

62 lines
2.3 KiB
Groovy

pipeline {
agent any
stages {
stage('Configurar Entorno') {
steps {
script {
// Selección de configuración según la rama
if (env.BRANCH_NAME == 'master') {
env.PROJECT_NAME = "django_master"
env.APP_CONTAINER_NAME = "django_app_master"
env.PORT = "8001"
env.DEBUG_MODE = "0"
env.ENV_CREDENTIAL_ID = "2"
} else if (env.BRANCH_NAME == 'dev') {
env.PROJECT_NAME = "django_dev"
env.APP_CONTAINER_NAME = "django_app_dev"
env.PORT = "8000"
env.DEBUG_MODE = "1"
env.ENV_CREDENTIAL_ID = "1"
}
}
}
}
stage('Fase Final: Containerización') {
when { anyOf { branch 'dev'; branch 'master' } }
steps {
withCredentials([file(credentialsId: env.ENV_CREDENTIAL_ID, variable: 'SECRET_ENV')]) {
sh """
echo "--> Preparando configuración segura..."
cp \$SECRET_ENV deployments/.env
echo "--> 🚀 DESPLEGANDO PROYECTO: ${env.PROJECT_NAME}"
# 1. Limpieza de contenedores previos para evitar conflictos de nombres
docker compose -p ${env.PROJECT_NAME} -f deployments/docker-compose.yml down --remove-orphans
# 2. Despliegue forzando la lectura del archivo .env específico
# CRÍTICO: --env-file asegura que DATABASE_EXPOSE_PORT se lea correctamente
docker compose \
-p ${env.PROJECT_NAME} \
-f deployments/docker-compose.yml \
--env-file deployments/.env \
up -d --build web
"""
}
}
}
}
post {
success {
echo "✅ Despliegue de ${env.BRANCH_NAME} completado con éxito."
sh "rm -f deployments/.env"
}
failure {
echo "❌ Error en el despliegue de ${env.BRANCH_NAME}."
sh "rm -f deployments/.env"
}
}
}