Files

36 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# Downloads the real Keycloak distribution from Maven Central, imports realm/demo-realm.json, runs the tests against it
# and writes the transcripts to cap/. No Docker needed. First run downloads about 170 MB.
set -euo pipefail
cd "$(dirname "$0")/.."
KC_VERSION=26.8.1
KC_HOME=.kc/keycloak-$KC_VERSION
mkdir -p cap .kc
if [ ! -d "$KC_HOME" ]; then
curl -fsSL --retry 5 --retry-delay 15 -o .kc/keycloak.tar.gz \
"https://repo1.maven.org/maven2/org/keycloak/keycloak-quarkus-dist/$KC_VERSION/keycloak-quarkus-dist-$KC_VERSION.tar.gz"
tar -xzf .kc/keycloak.tar.gz -C .kc
fi
rm -rf "$KC_HOME/data"
mkdir -p "$KC_HOME/data/import"
cp realm/demo-realm.json "$KC_HOME/data/import/"
KC_BOOTSTRAP_ADMIN_USERNAME=admin KC_BOOTSTRAP_ADMIN_PASSWORD=admin \
"$KC_HOME/bin/kc.sh" start-dev --http-port=8180 --import-realm > .kc/keycloak.log 2>&1 &
KC_PID=$!
trap 'kill $KC_PID 2>/dev/null || true; wait $KC_PID 2>/dev/null || true' EXIT
for _ in $(seq 1 120); do
curl -s -o /dev/null http://localhost:8180/realms/demo/.well-known/openid-configuration && break
sleep 2
done
curl -fs -o /dev/null http://localhost:8180/realms/demo/.well-known/openid-configuration
{
echo "Keycloak distribution: keycloak-quarkus-dist-$KC_VERSION from Maven Central (start-dev, built-in H2 database)"
grep -E "KC-SERVICES0030|Realm 'demo' imported|started in" .kc/keycloak.log | sed -E 's/^[0-9-]+ [0-9:,]+ //'
} > cap/05-keycloak-startup.txt
mvn -q -B test -Dkeycloak.url=http://localhost:8180