ci: refs #6695 remove deprecated Cypress Docker scripts
gitea/salix-front/pipeline/pr-dev There was a failure building this commit
Details
gitea/salix-front/pipeline/pr-dev There was a failure building this commit
Details
This commit is contained in:
parent
d94ec64615
commit
7fd0570929
|
@ -1,23 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
cleanup() {
|
||||
echo "⏹ Deteniendo ejecución..."
|
||||
|
||||
# Detener todos los procesos en paralelo
|
||||
kill "${pids[@]}" 2>/dev/null
|
||||
for pid in "${pids[@]}"; do
|
||||
if kill -0 "$pid" 2>/dev/null; then
|
||||
echo "→ ⏹️ Matando proceso $pid"
|
||||
kill "$pid"
|
||||
fi
|
||||
done
|
||||
|
||||
# Buscar y eliminar contenedores que comiencen con NETWORK
|
||||
containers=$(docker ps -aq --filter "name=^${NETWORK}")
|
||||
if [[ -n "$containers" ]]; then
|
||||
# echo "🧹 Eliminando contenedores: $containers"
|
||||
docker rm -fv $containers >/dev/null 2>&1 || true
|
||||
echo "⏹ Detenido y eliminado contenedores correctamente"
|
||||
fi
|
||||
exit 0
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Cargar módulos
|
||||
source "$(dirname "$0")/cleanup.sh"
|
||||
source "$(dirname "$0")/setup.sh"
|
||||
source "$(dirname "$0")/run_group.sh"
|
||||
source "$(dirname "$0")/summary.sh"
|
||||
source "$(dirname "$0")/wait_for_api_ready.sh"
|
||||
|
||||
# Manejo de señales para limpiar si se interrumpe el script
|
||||
trap cleanup SIGINT
|
||||
|
||||
# Docker setup
|
||||
echo "💿 Construyendo CypressSetup"
|
||||
docker build -t cypress-setup:latest -f ./test/cypress/Dockerfile . >/dev/null 2>&1
|
||||
echo "💿 Descargando imágenes actualizadas"
|
||||
docker-compose -f docker-compose.e2e.yml pull back front vn-database
|
||||
echo "💿 Levantando los contenedores"
|
||||
docker-compose -p lilium-e2e -f docker-compose.e2e.yml up -d >/dev/null 2>&1
|
||||
|
||||
wait_for_api_ready "Aplicación" "front" 9000 "/api/Applications/status" "lilium-e2e_default"
|
||||
echo "📀 Lanzando E2E"
|
||||
|
||||
# Lista global de PIDs
|
||||
declare -A running
|
||||
|
||||
# Índice de ejecución de carpetas
|
||||
INDEX_FILE="/tmp/index_file"
|
||||
index=$((numParallelGroups - 1))
|
||||
echo $index > "$INDEX_FILE"
|
||||
|
||||
# 🔹 Lanzar los primeros `numParallelGroups` procesos
|
||||
for ((i = 0; i < numParallelGroups && i < ${#folders[@]}; i++)); do
|
||||
run_group "${folders[$i]}" $i &
|
||||
done
|
||||
|
||||
# 🔹 Esperar a que todos los procesos terminen
|
||||
while [[ $((index + 2)) -lt ${#folders[@]} ]] || [[ $(docker ps --filter "ancestor=cypress-setup" --format "{{.ID}}" | wc -l) -gt 0 ]]; do
|
||||
# Actualizar index desde el archivo compartido
|
||||
next_index=$(cat "$INDEX_FILE")
|
||||
index=$next_index
|
||||
sleep 1 # Pausa antes de volver a comprobar
|
||||
done
|
||||
|
||||
docker-compose -p lilium-e2e -f docker-compose.e2e.yml down --volumes
|
||||
|
||||
# Generar el resumen final
|
||||
generate_summary
|
||||
|
||||
# Limpiar contenedores al finalizar
|
||||
cleanup
|
|
@ -1,48 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Función para esperar a que un servicio devuelva un JSON con `{ "status": true }` en la red de Docker
|
||||
|
||||
run_group() {
|
||||
local testFolder=$1
|
||||
local parallelIndex=$2
|
||||
local folderName=$(basename "$testFolder" | tr -cd 'a-zA-Z0-9_-')
|
||||
local uniqueName=lilium-e2e
|
||||
|
||||
echo "🔹 Lanzado - $folderName (Grupo: $parallelIndex)"
|
||||
|
||||
# 🚀 Ejecutar Cypress en modo detach y capturar el container ID
|
||||
containerId=$(docker run -d --name ${uniqueName}_${folderName}_cypress \
|
||||
--network ${uniqueName}_default \
|
||||
-e TZ=Europe/Madrid \
|
||||
-e DOCKER=true \
|
||||
-v "$(pwd)":/app \
|
||||
-w /app \
|
||||
cypress-setup \
|
||||
pnpm exec cypress run --browser chromium --spec test/cypress/integration/${folderName}/**/*.spec.js --no-exit)
|
||||
|
||||
# 🔹 Esperar activamente a que el contenedor finalice
|
||||
while true; do
|
||||
container_status=$(docker inspect -f '{{.State.Running}}' "$containerId" 2>/dev/null || echo "false")
|
||||
if [[ "$container_status" == "false" ]]; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# Verificar el código de salida
|
||||
exit_code=$(docker inspect -f '{{.State.ExitCode}}' "$containerId" 2>/dev/null || echo "1")
|
||||
|
||||
if [[ "$exit_code" -ne 0 ]]; then
|
||||
echo "❌ Fallos - ${folderName}"
|
||||
docker logs "$containerId" > "test/cypress/docker/logs/${uniqueName}_${folderName}_log" 2>/dev/null || true
|
||||
fi
|
||||
docker rm -f ${uniqueName}_${folderName}_cypress >/dev/null 2>&1 || true
|
||||
|
||||
next_index=$(cat "$INDEX_FILE")
|
||||
next_index=$((next_index + 1))
|
||||
echo "$next_index" > "$INDEX_FILE"
|
||||
|
||||
if [[ $next_index -lt ${#folders[@]} ]]; then
|
||||
run_group "${folders[$next_index]}" $parallelIndex &
|
||||
fi
|
||||
}
|
|
@ -1,48 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Configuración: Número de grupos en paralelo (por defecto 4, pero puede sobreescribirse con el primer argumento)
|
||||
numParallelGroups=${1:-4}
|
||||
NETWORK="lilium-e2e"
|
||||
pids=() # Para almacenar los procesos en paralelo
|
||||
|
||||
# Limpiar la carpeta de logs antes de cada ejecución
|
||||
LOG_DIR="test/cypress/docker/logs"
|
||||
SCREEN_SHOTS_DIR="test/cypress/screenshots"
|
||||
if [[ -d "$LOG_DIR" ]]; then
|
||||
echo "🧹 Borrando logs anteriores en $LOG_DIR..."
|
||||
echo "🧹 Borrando screenshots anteriores en $SCREEN_SHOTS_DIR..."
|
||||
sudo rm -rf "$LOG_DIR"
|
||||
sudo rm -rf "$SCREEN_SHOTS_DIR"
|
||||
fi
|
||||
mkdir -p "$LOG_DIR"
|
||||
mkdir -p "$SCREEN_SHOTS_DIR"
|
||||
|
||||
# Verificar si se pasó una carpeta específica como segundo parámetro
|
||||
if [[ -n "$2" ]]; then
|
||||
if [[ -d "test/cypress/integration/$2" ]]; then
|
||||
folders=()
|
||||
for ((i = 0; i < numParallelGroups; i++)); do
|
||||
folders+=("test/cypress/integration/$2/")
|
||||
done
|
||||
echo "🔍 Ejecutando '$2' en $numParallelGroups instancias paralelas."
|
||||
else
|
||||
echo "❌ La carpeta especificada '$2' no existe."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
# Obtener todas las carpetas de pruebas si no se especificó una
|
||||
folders=($(ls -d test/cypress/integration/*/ 2>/dev/null))
|
||||
if [[ ${#folders[@]} -eq 0 ]]; then
|
||||
echo "No se encontraron carpetas de pruebas."
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# Calcular el tamaño de cada grupo
|
||||
groupSize=$(( (${#folders[@]} + numParallelGroups - 1) / numParallelGroups )) # Redondeo hacia arriba
|
||||
|
||||
# Dividir las carpetas en grupos
|
||||
groups=()
|
||||
for ((i = 0; i < ${#folders[@]}; i += groupSize)); do
|
||||
groups+=("$(printf "%s " "${folders[@]:i:groupSize}")")
|
||||
done
|
|
@ -1,15 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
generate_summary() {
|
||||
# Verificar si hay archivos en el directorio de logs (indicando fallos)
|
||||
if [[ -d "$LOG_DIR" && "$(ls -A "$LOG_DIR")" ]]; then
|
||||
echo "❌ Se encontraron fallos en los tests, revise: $LOG_DIR"
|
||||
# for log_file in "$LOG_DIR"/*.log; do
|
||||
# test_name=$(basename "$log_file" .log)
|
||||
# echo " - $test_name (log en $log_file)"
|
||||
# done
|
||||
exit 1 # Devolver código de error para que Jenkins lo detecte
|
||||
else
|
||||
echo "✅ Todas las pruebas han pasado correctamente."
|
||||
fi
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
wait_for_api_ready() {
|
||||
local service_name="$1"
|
||||
local container_name="$2"
|
||||
local port="$3"
|
||||
local path="$4"
|
||||
local network="${5,,}"
|
||||
local max_retries=30 # Máximo de intentos (30 segundos)
|
||||
local retries=0
|
||||
local url="http://$container_name:$port$path"
|
||||
|
||||
# echo "⏳ Esperando a que $service_name devuelva exactamente 'true' en $url..."
|
||||
|
||||
while [[ $retries -lt $max_retries ]]; do
|
||||
response=$(docker run --rm --network="$network" curlimages/curl -s "$url" || echo "error")
|
||||
|
||||
# echo "🔍 Respuesta recibida de $service_name: '$response'"
|
||||
|
||||
if [[ "$response" == "true" ]]; then
|
||||
# echo "✅ Conectado al servicio $service_name → $url!"
|
||||
return 0
|
||||
fi
|
||||
|
||||
sleep 1
|
||||
((retries++))
|
||||
done
|
||||
|
||||
echo "❌ ERROR: $service_name no respondió con 'true' en $url después de $max_retries intentos."
|
||||
exit 1
|
||||
}
|
Loading…
Reference in New Issue