From 42e75fad4daef3e5c7c2ae518853c907b53b542a Mon Sep 17 00:00:00 2001 From: Elisabeth Kulzer Date: Wed, 1 Sep 2021 17:35:17 +0200 Subject: [PATCH] Fix test schema docker-compose exec exit problem (#18327) * Fix schema tests exiting early by replacing docker-compose exec with docker exec. Co-authored-by: Mattermod --- .gitlab-ci/scripts/test-schema/mysql.sh | 11 ++++++----- .gitlab-ci/scripts/test-schema/postgres.sh | 12 ++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci/scripts/test-schema/mysql.sh b/.gitlab-ci/scripts/test-schema/mysql.sh index 16f2bb0c62..be4426a475 100755 --- a/.gitlab-ci/scripts/test-schema/mysql.sh +++ b/.gitlab-ci/scripts/test-schema/mysql.sh @@ -14,6 +14,7 @@ docker ps DOCKER_NETWORK=$COMPOSE_PROJECT_NAME DOCKER_COMPOSE_FILE="gitlab-dc.schemamysql.yml" CONTAINER_SERVER="${COMPOSE_PROJECT_NAME}_server_1" +CONTAINER_DB="${COMPOSE_PROJECT_NAME}_mysql_1" docker network create $DOCKER_NETWORK ulimit -n 8096 cd "$CI_PROJECT_DIR"/build @@ -22,9 +23,9 @@ sleep 5 docker run --net $DOCKER_NETWORK "$CI_REGISTRY"/mattermost/ci/images/curl:7.59.0-1 sh -c "until curl --max-time 5 --output - http://mysql:3306; do echo waiting for mysql; sleep 5; done;" echo "Creating databases" -docker-compose -f $DOCKER_COMPOSE_FILE exec -T mysql mysql -uroot -pmostest -e "CREATE DATABASE migrated; CREATE DATABASE latest; GRANT ALL PRIVILEGES ON migrated.* TO mmuser; GRANT ALL PRIVILEGES ON latest.* TO mmuser" +docker exec $CONTAINER_DB mysql -uroot -pmostest -e "CREATE DATABASE migrated; CREATE DATABASE latest; GRANT ALL PRIVILEGES ON migrated.* TO mmuser; GRANT ALL PRIVILEGES ON latest.* TO mmuser; " echo "Importing mysql dump from version 6.0" -docker-compose -f $DOCKER_COMPOSE_FILE exec -T mysql mysql -D migrated -uroot -pmostest < "$CI_PROJECT_DIR"/scripts/mattermost-mysql-6.0.sql +docker exec $CONTAINER_DB mysql -D migrated -uroot -pmostest < "$CI_PROJECT_DIR"/scripts/mattermost-mysql-6.0.sql docker run -d -it --rm --name "$CONTAINER_SERVER" --net $DOCKER_NETWORK \ --env-file="dotenv/test-schema-validation.env" \ --env MM_SQLSETTINGS_DATASOURCE="mmuser:mostest@tcp(mysql:3306)/migrated?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s" \ @@ -39,10 +40,10 @@ docker logs -f $CONTAINER_SERVER tar -czvf logs/docker_logs$COMPOSE_PROJECT_NAME.tar.gz logs/docker-compose_logs_$COMPOSE_PROJECT_NAME echo "Generating dump" -docker-compose -f $DOCKER_COMPOSE_FILE exec -T mysql mysqldump --skip-opt --no-data --compact -u root -pmostest migrated > migrated.sql -docker-compose -f $DOCKER_COMPOSE_FILE exec -T mysql mysqldump --skip-opt --no-data --compact -u root -pmostest latest > latest.sql +docker exec $CONTAINER_DB mysqldump --skip-opt --no-data --compact -u root -pmostest migrated > migrated.sql +docker exec $CONTAINER_DB mysqldump --skip-opt --no-data --compact -u root -pmostest latest > latest.sql echo "Removing databases created for db comparison" -docker-compose -f $DOCKER_COMPOSE_FILE exec -T mysql mysql -uroot -pmostest -e 'DROP DATABASE migrated; DROP DATABASE latest' +docker exec $CONTAINER_DB mysql -uroot -pmostest -e 'DROP DATABASE migrated; DROP DATABASE latest' echo "Generating diff" diff migrated.sql latest.sql > diff.txt && echo "Both schemas are same" || (echo "Schema mismatch" && cat diff.txt && exit 1) diff --git a/.gitlab-ci/scripts/test-schema/postgres.sh b/.gitlab-ci/scripts/test-schema/postgres.sh index 1ec7fc634e..c9e483f94b 100755 --- a/.gitlab-ci/scripts/test-schema/postgres.sh +++ b/.gitlab-ci/scripts/test-schema/postgres.sh @@ -14,6 +14,7 @@ docker ps DOCKER_NETWORK=$COMPOSE_PROJECT_NAME DOCKER_COMPOSE_FILE="gitlab-dc.schemapostgres.yml" CONTAINER_SERVER="${COMPOSE_PROJECT_NAME}_server_1" +CONTAINER_DB="${COMPOSE_PROJECT_NAME}_postgres_1" docker network create $DOCKER_NETWORK ulimit -n 8096 cd "$CI_PROJECT_DIR"/build @@ -21,9 +22,9 @@ docker-compose -f $DOCKER_COMPOSE_FILE run -d --rm start_dependencies timeout 90s bash -c "until docker exec ${COMPOSE_PROJECT_NAME}_postgres_1 pg_isready ; do sleep 5 ; done" echo "Creating databases" -docker-compose -f $DOCKER_COMPOSE_FILE exec -T postgres sh -c 'exec echo "CREATE DATABASE migrated; CREATE DATABASE latest;" | exec psql -U mmuser mattermost_test' +docker exec $CONTAINER_DB sh -c 'exec echo "CREATE DATABASE migrated; CREATE DATABASE latest;" | exec psql -U mmuser mattermost_test;' echo "Importing postgres dump from version 6.0" -docker-compose -f $DOCKER_COMPOSE_FILE exec -T postgres psql -U mmuser -d migrated < "$CI_PROJECT_DIR"/scripts/mattermost-postgresql-6.0.sql +docker exec $CONTAINER_DB psql -U mmuser -d migrated < "$CI_PROJECT_DIR"/scripts/mattermost-postgresql-6.0.sql docker run -d -it --rm --name $CONTAINER_SERVER --net $DOCKER_NETWORK \ --env-file="dotenv/test-schema-validation.env" \ --env MM_SQLSETTINGS_DATASOURCE="postgres://mmuser:mostest@postgres:5432/migrated?sslmode=disable&connect_timeout=10" \ @@ -38,13 +39,12 @@ docker logs -f $CONTAINER_SERVER tar -czvf logs/docker_logs$COMPOSE_PROJECT_NAME.tar.gz logs/docker-compose_logs_$COMPOSE_PROJECT_NAME echo "Generating dump" -docker-compose -f $DOCKER_COMPOSE_FILE exec -T postgres pg_dump --schema-only -d migrated -U mmuser > migrated.sql -docker-compose -f $DOCKER_COMPOSE_FILE exec -T postgres pg_dump --schema-only -d latest -U mmuser > latest.sql +docker exec $CONTAINER_DB pg_dump --schema-only -d migrated -U mmuser > migrated.sql +docker exec $CONTAINER_DB pg_dump --schema-only -d latest -U mmuser > latest.sql echo "Removing databases created for db comparison" -docker-compose -f $DOCKER_COMPOSE_FILE exec -T postgres sh -c 'exec echo "DROP DATABASE migrated; DROP DATABASE latest;" | exec psql -U mmuser mattermost_test' +docker exec $CONTAINER_DB sh -c 'exec echo "DROP DATABASE migrated; DROP DATABASE latest;" | exec psql -U mmuser mattermost_test' echo "Generating diff" diff migrated.sql latest.sql > diff.txt && echo "Both schemas are same" || (echo "Schema mismatch" && cat diff.txt && exit 1) docker-compose -f $DOCKER_COMPOSE_FILE down -docker stop docker network remove $DOCKER_NETWORK