155 lines
5.5 KiB
Groovy
155 lines
5.5 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
environment {
|
|
AWS_ACCESS_KEY_ID = "000000000000"
|
|
AWS_SECRET_ACCESS_KEY = "test"
|
|
AWS_DEFAULT_REGION = "us-east-1"
|
|
AWS_ENDPOINT_URL = "http://floci:4566"
|
|
ENV = "local"
|
|
}
|
|
|
|
stages {
|
|
stage('01_image-setup') {
|
|
steps {
|
|
echo "=== Setup del entorno local ==="
|
|
sh '''
|
|
echo "✓ Docker disponible: $(docker --version)"
|
|
echo "✓ AWS CLI disponible: $(aws --version)"
|
|
'''
|
|
}
|
|
}
|
|
|
|
stage('02_local-aws-setup') {
|
|
steps {
|
|
echo "=== Configurando AWS Local (Floci) ==="
|
|
sh '''
|
|
bash scripts/aws-local-setup.sh local
|
|
'''
|
|
}
|
|
}
|
|
|
|
stage('03_test-s3-operations') {
|
|
steps {
|
|
echo "=== Probando operaciones S3 en Floci ==="
|
|
sh '''
|
|
export AWS_ACCESS_KEY_ID="000000000000"
|
|
export AWS_SECRET_ACCESS_KEY="test"
|
|
export AWS_DEFAULT_REGION="us-east-1"
|
|
|
|
echo "Creando bucket de prueba..."
|
|
aws --endpoint-url=http://floci:4566 s3 mb s3://proyectosacc-test-bucket || true
|
|
|
|
echo "Listando buckets..."
|
|
aws --endpoint-url=http://floci:4566 s3 ls
|
|
|
|
echo "Subiendo archivo de prueba..."
|
|
echo "test content" > /tmp/test-file.txt
|
|
aws --endpoint-url=http://floci:4566 s3 cp /tmp/test-file.txt s3://proyectosacc-test-bucket/
|
|
|
|
echo "Verificando contenido..."
|
|
aws --endpoint-url=http://floci:4566 s3 ls s3://proyectosacc-test-bucket/
|
|
|
|
echo "✓ Operaciones S3 completadas"
|
|
'''
|
|
}
|
|
}
|
|
|
|
stage('04_simular-build') {
|
|
steps {
|
|
echo "=== Simulando build de aplicación ==="
|
|
sh '''
|
|
echo "✓ Compilando frontend (simulado)"
|
|
echo "✓ Compilando backend JARs (simulado)"
|
|
mkdir -p build/libs
|
|
echo "simulated-jar" > build/libs/app.jar
|
|
echo "✓ Artefactos generados"
|
|
'''
|
|
}
|
|
}
|
|
|
|
stage('05_publish-local') {
|
|
steps {
|
|
echo "=== Publicando artefactos localmente ==="
|
|
sh '''
|
|
export AWS_ACCESS_KEY_ID="000000000000"
|
|
export AWS_SECRET_ACCESS_KEY="test"
|
|
export AWS_DEFAULT_REGION="us-east-1"
|
|
|
|
echo "Subiendo a S3 local..."
|
|
aws --endpoint-url=http://floci:4566 s3 cp build/libs/app.jar s3://proyectosacc-test-bucket/artifacts/ || true
|
|
|
|
echo "Subiendo frontend a S3..."
|
|
echo "frontend-content" > /tmp/frontend.zip
|
|
aws --endpoint-url=http://floci:4566 s3 cp /tmp/frontend.zip s3://proyectosacc-test-bucket/frontend/ || true
|
|
|
|
echo "✓ Publish completado"
|
|
'''
|
|
}
|
|
}
|
|
|
|
stage('06_deploy-local') {
|
|
steps {
|
|
echo "=== Ejecutando deploy local ==="
|
|
sh '''
|
|
bash scripts/deploy-local.sh local
|
|
'''
|
|
}
|
|
}
|
|
|
|
stage('07_health-check') {
|
|
steps {
|
|
echo "=== Health Check ==="
|
|
sh '''
|
|
echo "Verificando servicios locales..."
|
|
|
|
# Verificar Jenkins
|
|
if curl -sf http://jenkins:8080/login > /dev/null; then
|
|
echo "✓ Jenkins - OK"
|
|
fi
|
|
|
|
# Verificar Gitea
|
|
if curl -sf http://gitea:3000 > /dev/null; then
|
|
echo "✓ Gitea - OK"
|
|
fi
|
|
|
|
# Verificar SonarQube
|
|
if curl -sf http://sonarqube:9000 > /dev/null; then
|
|
echo "✓ SonarQube - OK"
|
|
fi
|
|
|
|
# Verificar Registry
|
|
if curl -sf http://registry:5000/v2/ > /dev/null; then
|
|
echo "✓ Registry - OK"
|
|
fi
|
|
|
|
# Verificar Floci
|
|
if curl -sf http://floci:4566 > /dev/null; then
|
|
echo "✓ Floci (AWS) - OK"
|
|
fi
|
|
|
|
echo "✓ Todos los servicios del laboratorio están activos"
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
|
|
post {
|
|
always {
|
|
echo "=== Pipeline de prueba completado ==="
|
|
echo "El pipeline ha demostrado:"
|
|
echo " 1. Configuración de credenciales AWS (Floci)"
|
|
echo " 2. Operaciones S3 (create bucket, upload, list)"
|
|
echo " 3. Simulación de build y publish"
|
|
echo " 4. Deploy local simulado"
|
|
echo " 5. Health check de todos los servicios"
|
|
}
|
|
success {
|
|
echo "✅ PIPELINE EXITOSO"
|
|
}
|
|
failure {
|
|
echo "❌ PIPELINE FALLÓ"
|
|
}
|
|
}
|
|
}
|