From 32ee1d8108e1f835937b174c896fabfcb6c771c7 Mon Sep 17 00:00:00 2001 From: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com> Date: Fri, 31 Jul 2026 00:19:13 +0800 Subject: [PATCH] fix(ci): expose binding v2 test startup failures Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com> --- .../identity-binding-v2-postgres-test.sh | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/scripts/tests/identity-binding-v2-postgres-test.sh b/scripts/tests/identity-binding-v2-postgres-test.sh index 5b55d517..4977880b 100755 --- a/scripts/tests/identity-binding-v2-postgres-test.sh +++ b/scripts/tests/identity-binding-v2-postgres-test.sh @@ -10,15 +10,29 @@ POSTGRES_PASSWORD="identity-v2-test-password" POSTGRES_DB="identity_v2" MAVEN_CACHE_DIR="${MAVEN_CACHE_DIR:-${HOME}/.m2}" +log() { + printf '[identity-binding-v2] %s\n' "$*" +} + cleanup() { + exit_code="$?" + if [[ "${exit_code}" -ne 0 ]]; then + log "failed with exit code ${exit_code}" + docker ps -a \ + --filter "label=skillhub.test.run=${RUN_ID}" \ + --format 'resource={{.Names}} status={{.Status}}' || true + docker logs "${POSTGRES_CONTAINER}" 2>&1 || true + fi docker rm -f "${POSTGRES_CONTAINER}" >/dev/null 2>&1 || true docker network rm "${NETWORK}" >/dev/null 2>&1 || true } trap cleanup EXIT +log "creating isolated Docker network ${NETWORK}" docker network create \ --label "skillhub.test.run=${RUN_ID}" \ "${NETWORK}" >/dev/null +log "starting isolated PostgreSQL container ${POSTGRES_CONTAINER}" docker run -d \ --name "${POSTGRES_CONTAINER}" \ --label "skillhub.test.run=${RUN_ID}" \ @@ -31,6 +45,7 @@ docker run -d \ -p 127.0.0.1::5432 \ postgres:16-alpine >/dev/null +log "waiting for PostgreSQL readiness" for _ in $(seq 1 60); do if docker exec "${POSTGRES_CONTAINER}" \ pg_isready -U "${POSTGRES_USER}" -d "${POSTGRES_DB}" \ @@ -42,6 +57,7 @@ done docker exec "${POSTGRES_CONTAINER}" \ pg_isready -U "${POSTGRES_USER}" -d "${POSTGRES_DB}" \ >/dev/null +log "PostgreSQL is ready" run_test() { test_class="$1" @@ -53,6 +69,11 @@ run_test() { if [[ "${java_version}" == *'"21.'* ]]; then host_port="$(docker port "${POSTGRES_CONTAINER}" 5432/tcp \ | sed -n 's/.*://p')" + if [[ -z "${host_port}" ]]; then + log "Docker did not publish a PostgreSQL host port" + return 1 + fi + log "running ${test_class} with host Java 21" ( cd "${REPO_ROOT}/server" IDENTITY_BINDING_V2_POSTGRES_URL="jdbc:postgresql://127.0.0.1:${host_port}/${POSTGRES_DB}" \ @@ -70,6 +91,7 @@ run_test() { return fi + log "running ${test_class} with containerized Java 21" mkdir -p "${MAVEN_CACHE_DIR}" docker run --rm \ --name "${RUN_ID}-java" \