Files
centurion_erp/test/setup-integration.sh

71 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
set -e
docker exec -i centurion-erp pip install -r /requirements_test.txt
docker exec -i centurion-erp supervisorctl restart gunicorn
CONTAINER_NAME="centurion-erp-init"
TIMEOUT=400
INTERVAL=5
ELAPSED=0
STATUS=""
while [ "$STATUS" != "exited" ] && [ "$STATUS" != "dead" ]; do
STATUS=$(docker inspect --format '{{.State.Status}}' "$CONTAINER_NAME" 2>/dev/null || echo "not_found")
if [ "$STATUS" = "not_found" ]; then
docker ps -a
echo "Container $CONTAINER_NAME was not found."
exit 2
fi
if [ $ELAPSED -ge $TIMEOUT ]; then
echo "Timeout reached. Container $CONTAINER_NAME still running (status: $STATUS)."
exit 3
fi
echo "Waiting for container $CONTAINER_NAME to complete... Current status: $STATUS"
sleep $INTERVAL
ELAPSED=$((ELAPSED + INTERVAL))
done
echo "Container $CONTAINER_NAME has completed."
CONTAINER_NAME="centurion-erp"
TIMEOUT=90
INTERVAL=5
ELAPSED=0
STATUS=""
while [ "$STATUS" != "healthy" ]; do
STATUS=$(docker inspect --format '{{.State.Health.Status}}' "$CONTAINER_NAME" 2>/dev/null || echo "none")
if [ $ELAPSED -ge $TIMEOUT ]; then
echo "Timeout reached. Container $CONTAINER_NAME is not healthy."
exit 4
fi
echo "Waiting for container $CONTAINER_NAME to be healthy... Current status: $STATUS"
sleep $INTERVAL
ELAPSED=$((ELAPSED + INTERVAL))
done
docker exec -i centurion-erp python manage.py createsuperuser --username admin --email admin@localhost --noinput
docker exec -i centurion-erp apk add expect
docker exec -i centurion-erp expect -c "
spawn python manage.py changepassword admin
expect \"Password:\"
send \"admin\r\"
expect \"Password (again):\"
send \"admin\r\"
expect eof
"