Quality / test (push) Canceled after 0s
Add restore verification and image-storage recovery scripts, update deployment documentation, and note the restore drill milestone in the implementation status.
39 lines
1.0 KiB
Bash
39 lines
1.0 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
script_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
|
test_dir=$(mktemp -d)
|
|
trap 'rm -rf "$test_dir"' EXIT
|
|
mkdir -p "$test_dir/bin"
|
|
|
|
printf '%s\n' '#!/bin/sh' 'exit 0' > "$test_dir/bin/docker"
|
|
chmod +x "$test_dir/bin/docker"
|
|
|
|
printf '%s\n' 'fake dump' > "$test_dir/backup.dump"
|
|
PATH="$test_dir/bin:$PATH" \
|
|
BACKUP_FILE="$test_dir/backup.dump" \
|
|
POSTGRES_DB=inventory \
|
|
POSTGRES_USER=inventory \
|
|
POSTGRES_PASSWORD=secret \
|
|
sh "$script_dir/restore-postgres.sh" >/dev/null
|
|
|
|
if BACKUP_FILE="$test_dir/empty.dump" \
|
|
POSTGRES_DB=inventory \
|
|
POSTGRES_USER=inventory \
|
|
POSTGRES_PASSWORD=secret \
|
|
sh "$script_dir/restore-postgres.sh" >/dev/null 2>&1; then
|
|
printf '%s\n' 'Expected empty backup to fail.' >&2
|
|
exit 1
|
|
fi
|
|
|
|
if BACKUP_FILE="$test_dir/missing.dump" \
|
|
POSTGRES_DB=inventory \
|
|
POSTGRES_USER=inventory \
|
|
POSTGRES_PASSWORD=secret \
|
|
sh "$script_dir/restore-postgres.sh" >/dev/null 2>&1; then
|
|
printf '%s\n' 'Expected missing backup to fail.' >&2
|
|
exit 1
|
|
fi
|
|
|
|
printf '%s\n' 'restore-postgres tests passed.'
|