cli(migrations-docker): randomize server port (fix #3479) (#3481)

Co-authored-by: Shahidh K Muhammed <muhammedshahid.k@gmail.com>
This commit is contained in:
Tirumarai Selvan 2019-12-27 09:35:29 +05:30 committed by Shahidh K Muhammed
parent 181902cc6c
commit c2829c662b

View File

@ -11,11 +11,11 @@ log() {
DEFAULT_MIGRATIONS_DIR="/hasura-migrations"
TEMP_MIGRATIONS_DIR="/tmp/hasura-migrations"
# check server port and set default as 8080
if [ -z ${HASURA_GRAPHQL_SERVER_PORT+x} ]; then
log "port env var is not set, defaulting to 8080"
HASURA_GRAPHQL_SERVER_PORT=8080
fi
# Use 9691 port for running temporary instance.
# In case 9691 is occupied (according to docker networking), then this will fail.
# TODO: Find a proper random port or read from env variable.
HASURA_GRAPHQL_MIGRATIONS_SERVER_PORT=9691
if [ -z ${HASURA_GRAPHQL_MIGRATIONS_SERVER_TIMEOUT+x} ]; then
log "server timeout is not set defaulting to 30 seconds"
HASURA_GRAPHQL_MIGRATIONS_SERVER_TIMEOUT=30
@ -33,15 +33,15 @@ wait_for_port() {
log "failed waiting for $PORT" && exit 1
}
log "starting graphql engine temporarily on port $HASURA_GRAPHQL_SERVER_PORT"
log "starting graphql engine temporarily on port $HASURA_GRAPHQL_MIGRATIONS_SERVER_PORT"
# start graphql engine with metadata api enabled
graphql-engine serve --enabled-apis="metadata" &
graphql-engine serve --server-port=${HASURA_GRAPHQL_MIGRATIONS_SERVER_PORT} --enabled-apis="metadata" &
# store the pid to kill it later
PID=$!
# wait for port to be ready
wait_for_port $HASURA_GRAPHQL_SERVER_PORT
wait_for_port $HASURA_GRAPHQL_MIGRATIONS_SERVER_PORT
# check if migration directory is set, default otherwise
log "checking for migrations directory"
@ -56,7 +56,7 @@ if [ -d "$HASURA_GRAPHQL_MIGRATIONS_DIR" ]; then
mkdir -p "$TEMP_MIGRATIONS_DIR"
cp -a "$HASURA_GRAPHQL_MIGRATIONS_DIR/." "$TEMP_MIGRATIONS_DIR/migrations/"
cd "$TEMP_MIGRATIONS_DIR"
echo "endpoint: http://localhost:$HASURA_GRAPHQL_SERVER_PORT" > config.yaml
echo "endpoint: http://localhost:$HASURA_GRAPHQL_MIGRATIONS_SERVER_PORT" > config.yaml
echo "show_update_notification: false" >> config.yaml
hasura-cli migrate apply
# check if metadata.[yaml|json] exist and apply