#!/usr/bin/env bash
set -Eeuo pipefail
name="nstow-integration-tests"
tag="$(rg --no-config --only-matching --pcre2 '(?<=version = ")[0-9]+\.[0-9]+\.[0-9](?=")' Cargo.toml)"
image="${name}:${tag}"
docker build --tag "${image}" .
# Run an infinite loop in the background to keep the container going
# This way, we can exec in after we run the tests
docker run --rm --detach --entrypoint '/bin/bash' --name "${name}" "${image}" -c 'while true; do sleep 1; done'
# Run our tests in the container
if ! docker exec -it "${name}" integration-tests; then
# If tests fail, enter an interactive shell
echo ''
echo "> Entering container for inspection"
docker exec -it "${name}" /bin/bash
fi
# Stop and remove the container
docker kill "${name}" &>/dev/null