salix-front/test/cypress/docker/run/main.sh

52 lines
1.6 KiB
Bash

#!/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
# Generar el resumen final
generate_summary
# Limpiar contenedores al finalizar
cleanup