You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.2 KiB
38 lines
1.2 KiB
#!/usr/bin/env bash
|
|
|
|
CMD_ARGS=$1
|
|
KEYCLOAK_DOCKER_IMAGE_TAG="${KEYCLOAK_DOCKER_IMAGE_TAG:-latest}"
|
|
KEYCLOAK_DOCKER_IMAGE="quay.io/keycloak/keycloak:$KEYCLOAK_DOCKER_IMAGE_TAG"
|
|
|
|
function keycloak_stop() {
|
|
if [ "$(docker ps -q -f name=unittest_keycloak)" ]; then
|
|
docker logs unittest_keycloak > keycloak_test_logs.txt
|
|
docker stop unittest_keycloak &> /dev/null
|
|
docker rm unittest_keycloak &> /dev/null
|
|
fi
|
|
}
|
|
|
|
function keycloak_start() {
|
|
echo "Starting keycloak docker container"
|
|
PWD=$(pwd)
|
|
docker run -d --name unittest_keycloak -e KEYCLOAK_ADMIN="${KEYCLOAK_ADMIN}" -e KEYCLOAK_ADMIN_PASSWORD="${KEYCLOAK_ADMIN_PASSWORD}" -e KC_FEATURES="token-exchange,admin-fine-grained-authz" -p "${KEYCLOAK_PORT}:8080" -v $PWD/tests/providers:/opt/keycloak/providers "${KEYCLOAK_DOCKER_IMAGE}" start-dev
|
|
SECONDS=0
|
|
until curl --silent --output /dev/null localhost:$KEYCLOAK_PORT; do
|
|
sleep 5;
|
|
if [ ${SECONDS} -gt 180 ]; then
|
|
echo "Timeout exceeded";
|
|
exit 1;
|
|
fi
|
|
done
|
|
}
|
|
|
|
# Ensuring that keycloak is stopped in case of CTRL-C
|
|
trap keycloak_stop err exit
|
|
|
|
keycloak_stop # In case it did not shut down correctly last time.
|
|
keycloak_start
|
|
|
|
eval ${CMD_ARGS}
|
|
RETURN_VALUE=$?
|
|
|
|
exit ${RETURN_VALUE}
|