mirror of
https://github.com/Unleash/unleash.git
synced 2024-10-28 19:06:12 +01:00
dc9c55234e
I found the previous docker-postgres.sh script did not work for me on macOS. this commit abstracts a pair of commands behind functions which can be customized by platform. Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
76 lines
1.8 KiB
Bash
Executable File
76 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
export POSTGRES_PASSWORD="uleash"
|
|
|
|
function getDockerDBPort() {
|
|
case "$OSTYPE" in
|
|
darwin*) echo `docker ps| grep unleash-post| awk '{print $(NF-1)}'| awk -F "->" '{print $1}'| awk -F \: '{print $4}'`;;
|
|
# solaris*) echo "SOLARIS" ;;
|
|
# linux*) echo "LINUX" ;;
|
|
# bsd*) echo "BSD" ;;
|
|
# msys*) echo "WINDOWS" ;;
|
|
# cygwin*) echo "ALSO WINDOWS" ;;
|
|
*) echo `docker ps| grep unleash-post| awk '{print $(NF-1)}'| awk -F "->" '{print $1}'| awk -F \: '{print $2}'`;;
|
|
esac
|
|
}
|
|
|
|
if docker ps | grep unleash-postgres > /dev/null; then
|
|
echo "unleash-postgress is already running"
|
|
else
|
|
echo "starting postgres in docker "
|
|
HASH=`docker run -P --name unleash-postgres -e POSTGRES_PASSWORD=$POSTGRES_PASSWORD -d postgres:10`
|
|
fi
|
|
|
|
export PGPORT=$(getDockerDBPort)
|
|
if [ -z "$PGPORT" ]; then
|
|
echo "could not find PGPORT! is postgres running?"
|
|
exit 1
|
|
fi
|
|
echo "PGPORT: $PGPORT"
|
|
echo ""
|
|
|
|
echo "Waiting for postgres to start..."
|
|
|
|
function isPostgresAvailable() {
|
|
echo "polling $1:$2"
|
|
|
|
case "$OSTYPE" in
|
|
darwin*) nc -z $1 $2;;
|
|
# solaris*) echo "SOLARIS" ;;
|
|
# linux*) echo "LINUX" ;;
|
|
# bsd*) echo "BSD" ;;
|
|
# msys*) echo "WINDOWS" ;;
|
|
# cygwin*) echo "ALSO WINDOWS" ;;
|
|
*) netcat -z $1 $2;;
|
|
esac
|
|
}
|
|
|
|
if [ -z "$DOCKER_HOST" ]
|
|
then
|
|
export database_host="127.0.0.1"
|
|
else
|
|
export database_host=$(echo $DOCKER_HOST |awk -F \/ '{print $NF}'| awk -F \: '{print $1}')
|
|
fi
|
|
|
|
export TEST_DATABASE_URL=postgres://postgres:$POSTGRES_PASSWORD@$database_host:$PGPORT/postgres
|
|
|
|
for i in `seq 1 120`;
|
|
do
|
|
# echo -n "."
|
|
sleep 1
|
|
isPostgresAvailable $database_host $PGPORT && echo "postgres is up and running in docker in $i seconds!" && break
|
|
done
|
|
|
|
echo "running migrations..."
|
|
DATABASE_URL=$TEST_DATABASE_URL npm run db-migrate -- up
|
|
|
|
echo "running tests..."
|
|
yarn test
|
|
|
|
echo "cleanup..."
|
|
docker stop $HASH
|
|
docker rm $HASH
|
|
|
|
echo "done"
|