46 lines
1.5 KiB
Bash
46 lines
1.5 KiB
Bash
|
#!/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
|
||
|
failedTests=() # Para almacenar las carpetas que fallaron
|
||
|
|
||
|
# Limpiar la carpeta de logs antes de cada ejecución
|
||
|
LOG_DIR="test/cypress/docker/logs"
|
||
|
if [[ -d "$LOG_DIR" ]]; then
|
||
|
echo "🧹 Borrando logs anteriores en $LOG_DIR..."
|
||
|
rm -rf "$LOG_DIR"
|
||
|
fi
|
||
|
mkdir -p "$LOG_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
|