#!/usr/bin/env bash # Disposable isolated PostgreSQL; no production credentials or published ports. set -euo pipefail name="btcdata-test-${GITHUB_RUN_ID:-$$}-${GITHUB_RUN_ATTEMPT:-1}" cleanup() { docker rm -f "$name" >/dev/null 2>&1 || true docker network rm "$name" >/dev/null 2>&1 || true } trap cleanup EXIT docker network create "$name" >/dev/null docker run -d --name "$name" --network "$name" \ -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16-alpine >/dev/null ready=false for _ in $(seq 1 60); do if docker exec "$name" pg_isready -U postgres >/dev/null 2>&1; then ready=true break fi sleep 1 done if [ "$ready" != true ]; then echo 'Disposable PostgreSQL did not become ready' >&2 exit 1 fi docker run --rm --network "$name" -v "$PWD:/app" -w /app \ -e "BTCDATA_TEST_JDBC_URL=jdbc:postgresql://$name:5432/postgres?user=postgres" \ clojure:temurin-21-tools-deps-alpine clj -M:test