test: add PostgreSQL migration integration coverage
CI / verify (pull_request) Successful in 19s
CI / infrastructure-smoke (pull_request) Successful in 21s
CI / migration-smoke (pull_request) Failing after 16s

This commit is contained in:
ekklesia
2026-07-21 09:37:15 -05:00
parent b38f85f438
commit 831a48187c
16 changed files with 1690 additions and 96 deletions
+112
View File
@@ -0,0 +1,112 @@
#!/usr/bin/env bash
COMPOSE_JOB_NETWORK_RUNNING_IN_CONTAINER=false
COMPOSE_JOB_NETWORK_CURRENT_CONTAINER=""
COMPOSE_JOB_NETWORK_NAME=""
COMPOSE_JOB_NETWORK_CONNECTED=false
compose_job_network_initialize() {
COMPOSE_JOB_NETWORK_RUNNING_IN_CONTAINER=false
COMPOSE_JOB_NETWORK_CURRENT_CONTAINER=""
COMPOSE_JOB_NETWORK_NAME=""
COMPOSE_JOB_NETWORK_CONNECTED=false
if [[ ! -f /.dockerenv ]]; then
return 0
fi
if [[ -z "${HOSTNAME:-}" ]]; then
return 1
fi
COMPOSE_JOB_NETWORK_RUNNING_IN_CONTAINER=true
COMPOSE_JOB_NETWORK_CURRENT_CONTAINER="$HOSTNAME"
}
compose_job_network_connect() {
if [[ "$COMPOSE_JOB_NETWORK_RUNNING_IN_CONTAINER" != "true" ]]; then
return 1
fi
if (($# == 0)); then
return 1
fi
local service="$1"
shift
if [[ -z "$service" || $# -eq 0 ]]; then
return 1
fi
local service_container_output
if ! service_container_output="$("$@" ps -q "$service" 2>/dev/null)"; then
return 1
fi
local service_containers=()
while IFS= read -r container_id; do
if [[ -n "$container_id" ]]; then
service_containers+=("$container_id")
fi
done <<<"$service_container_output"
if ((${#service_containers[@]} != 1)); then
return 1
fi
local service_network_output
if ! service_network_output="$(
docker inspect \
--format '{{range $networkName, $_ := .NetworkSettings.Networks}}{{println $networkName}}{{end}}' \
"${service_containers[0]}" 2>/dev/null
)"; then
return 1
fi
local service_networks=()
while IFS= read -r network_name; do
if [[ -n "$network_name" ]]; then
service_networks+=("$network_name")
fi
done <<<"$service_network_output"
if ((${#service_networks[@]} != 1)); then
return 1
fi
COMPOSE_JOB_NETWORK_NAME="${service_networks[0]}"
local current_network_output
if ! current_network_output="$(
docker inspect \
--format '{{range $networkName, $_ := .NetworkSettings.Networks}}{{println $networkName}}{{end}}' \
"$COMPOSE_JOB_NETWORK_CURRENT_CONTAINER" 2>/dev/null
)"; then
return 1
fi
while IFS= read -r network_name; do
if [[ "$network_name" == "$COMPOSE_JOB_NETWORK_NAME" ]]; then
COMPOSE_JOB_NETWORK_CONNECTED=true
return 0
fi
done <<<"$current_network_output"
COMPOSE_JOB_NETWORK_CONNECTED=true
if ! docker network connect \
"$COMPOSE_JOB_NETWORK_NAME" \
"$COMPOSE_JOB_NETWORK_CURRENT_CONTAINER" >/dev/null 2>&1; then
docker network disconnect \
"$COMPOSE_JOB_NETWORK_NAME" \
"$COMPOSE_JOB_NETWORK_CURRENT_CONTAINER" >/dev/null 2>&1 || true
COMPOSE_JOB_NETWORK_CONNECTED=false
return 1
fi
}
compose_job_network_disconnect() {
if [[ "$COMPOSE_JOB_NETWORK_CONNECTED" != "true" ]]; then
return 0
fi
if ! docker network disconnect \
"$COMPOSE_JOB_NETWORK_NAME" \
"$COMPOSE_JOB_NETWORK_CURRENT_CONTAINER" >/dev/null 2>&1; then
return 1
fi
COMPOSE_JOB_NETWORK_CONNECTED=false
}