mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	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"
 |