1234567891011121314151617181920212223242526272829303132333435363738 |
- #!/usr/bin/env bash
- set -euo pipefail
- CONTAINER_NAME="rust-test-pg"
- DB_USER="test"
- DB_PASS="test"
- DB_NAME="testdb"
- DB_PORT="5433"
- DB_URL="postgres://${DB_USER}:${DB_PASS}@localhost:${DB_PORT}/${DB_NAME}"
- cleanup() {
- echo "Cleaning up..."
- docker stop "${CONTAINER_NAME}" >/dev/null 2>&1 || true
- docker rm "${CONTAINER_NAME}" >/dev/null 2>&1 || true
- }
- trap cleanup EXIT INT TERM
- echo "Starting fresh PostgreSQL container..."
- docker run -d --rm \
- --name "${CONTAINER_NAME}" \
- -e POSTGRES_USER="${DB_USER}" \
- -e POSTGRES_PASSWORD="${DB_PASS}" \
- -e POSTGRES_DB="${DB_NAME}" \
- -p ${DB_PORT}:5432 \
- -v "${PWD}/.docker/pg-init.sql:/docker-entrypoint-initdb.d/init.sql:ro" \
- postgres:16
- echo "Waiting for PostgreSQL to be ready..."
- until docker exec "${CONTAINER_NAME}" pg_isready -U "${DB_USER}" >/dev/null 2>&1; do
- sleep 0.5
- done
- export DATABASE_URL="${DB_URL}"
- echo "Running cargo tests..."
- cargo test
|