From b9f8d24cbc6aa7086795d8e396e852361f93ff02 Mon Sep 17 00:00:00 2001 From: Elisabeth Kulzer Date: Thu, 8 Oct 2020 11:24:16 +0200 Subject: [PATCH] Move environment variables to env-file (#15820) --- .circleci/config.yml | 54 ++++++------------------- build/dotenv/test-schema-validation.env | 10 +++++ build/dotenv/test.env | 15 +++++++ build/local-test-env.sh | 19 ++------- 4 files changed, 42 insertions(+), 56 deletions(-) create mode 100644 build/dotenv/test-schema-validation.env create mode 100644 build/dotenv/test.env diff --git a/.circleci/config.yml b/.circleci/config.yml index 0c2651a487..d2e244e7ab 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -217,27 +217,15 @@ jobs: command: | ulimit -n 8096 mkdir -p mattermost-server/client/plugins + cd mattermost-server/build docker run -it --net circleci_mm-test \ - --env TEST_DATABASE_MYSQL_DSN="mmuser:mostest@tcp(mysql:3306)/mattermost_test?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s" \ - --env TEST_DATABASE_POSTGRESQL_DSN="postgres://mmuser:mostest@postgres:5432/mattermost_test?sslmode=disable&connect_timeout=10" \ - --env TEST_DATABASE_MYSQL_ROOT_PASSWD=mostest \ - --env CI_INBUCKET_HOST=inbucket \ - --env CI_MINIO_HOST=minio \ - --env CI_INBUCKET_PORT=10080 \ - --env CI_MINIO_PORT=9000 \ - --env CI_INBUCKET_SMTP_PORT=10025 \ - --env CI_LDAP_HOST=openldap \ - --env IS_CI="true" \ - --env MM_EMAILSETTINGS_SMTPSERVER=inbucket \ - --env MM_EMAILSETTINGS_SMTPPORT=10025 \ - --env MM_ELASTICSEARCHSETTINGS_CONNECTIONURL=http://elasticsearch:9200 \ + --env-file=dotenv/test.env \ --env MM_SQLSETTINGS_DATASOURCE="<>" \ --env MM_SQLSETTINGS_DRIVERNAME=<> \ - --env GOBIN=/mattermost/mattermost-server/bin \ -v ~/mattermost:/mattermost \ -w /mattermost/mattermost-server \ mattermost/mattermost-build-server:20200731_golang-1.14.6 \ - bash -c 'ulimit -n 8096; make test-server BUILD_NUMBER="$CIRCLE_BRANCH-$CIRCLE_PREVIOUS_BUILD_NUM" TESTFLAGS= TESTFLAGSEE=' + bash -c "ulimit -n 8096; make test-server BUILD_NUMBER=$CIRCLE_BRANCH-$CIRCLE_PREVIOUS_BUILD_NUM TESTFLAGS= TESTFLAGSEE=" no_output_timeout: 1h - run: name: Capture docker logs @@ -287,30 +275,22 @@ jobs: - run: name: Postgres schema migration validation command: | + cd mattermost-server/build ulimit -n 8096 mkdir -p mattermost-server/client/plugins - cd mattermost-server/build echo "Creating databases" docker-compose --no-ansi exec -T postgres sh -c 'exec echo "CREATE DATABASE migrated; CREATE DATABASE latest;" | exec psql -U mmuser mattermost_test' echo "Importing postgres dump from version 5.0" docker-compose --no-ansi exec -T postgres psql -U mmuser -d migrated < ../scripts/mattermost-postgresql-5.0.sql docker run -it --net circleci_mm-test \ - --env CI_INBUCKET_HOST=inbucket \ - --env CI_MINIO_HOST=minio \ - --env CI_INBUCKET_PORT=10080 \ - --env CI_MINIO_PORT=9000 \ - --env CI_INBUCKET_SMTP_PORT=10025 \ - --env CI_LDAP_HOST=openldap \ - --env IS_CI="true" \ + --env-file="dotenv/test-schema-validation.env" \ --env MM_SQLSETTINGS_DATASOURCE="postgres://mmuser:mostest@postgres:5432/migrated?sslmode=disable&connect_timeout=10" \ - --env MM_EMAILSETTINGS_SMTPSERVER=inbucket \ --env MM_SQLSETTINGS_DRIVERNAME=postgres \ - --env MM_EMAILSETTINGS_SMTPPORT=10025 \ - --env MM_ELASTICSEARCHSETTINGS_CONNECTIONURL=http://elasticsearch:9200 \ -v ~/mattermost:/mattermost \ -w /mattermost/mattermost-server \ mattermost/mattermost-build-server:20200731_golang-1.14.6 \ - bash -c 'ulimit -n 8096; make ARGS="version" run-cli && make MM_SQLSETTINGS_DATASOURCE="postgres://mmuser:mostest@postgres:5432/latest?sslmode=disable&connect_timeout=10" ARGS="version" run-cli' + bash -c "ulimit -n 8096; make ARGS='version' run-cli && make MM_SQLSETTINGS_DATASOURCE='postgres://mmuser:mostest@postgres:5432/latest?sslmode=disable&connect_timeout=10' ARGS='version' run-cli" + echo "Generating dump" docker-compose --no-ansi exec -T postgres pg_dump --schema-only -d migrated -U mmuser > migrated.sql docker-compose --no-ansi exec -T postgres pg_dump --schema-only -d latest -U mmuser > latest.sql @@ -323,30 +303,22 @@ jobs: - run: name: MySQL schema migration validation command: | + cd mattermost-server/build ulimit -n 8096 mkdir -p mattermost-server/client/plugins - cd mattermost-server/build echo "Creating databases" docker-compose --no-ansi 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" echo "Importing mysql dump from version 5.0" docker-compose --no-ansi exec -T mysql mysql -D migrated -uroot -pmostest < ../scripts/mattermost-mysql-5.0.sql + docker run -it --net circleci_mm-test \ - --env CI_INBUCKET_HOST=inbucket \ - --env CI_MINIO_HOST=minio \ - --env CI_INBUCKET_PORT=10080 \ - --env CI_MINIO_PORT=9000 \ - --env CI_INBUCKET_SMTP_PORT=10025 \ - --env CI_LDAP_HOST=openldap \ - --env IS_CI="true" \ + --env-file="dotenv/test-schema-validation.env" \ --env MM_SQLSETTINGS_DATASOURCE="mmuser:mostest@tcp(mysql:3306)/migrated?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s" \ - --env MM_EMAILSETTINGS_SMTPSERVER=inbucket \ --env MM_SQLSETTINGS_DRIVERNAME=mysql \ - --env MM_EMAILSETTINGS_SMTPPORT=10025 \ - --env MM_ELASTICSEARCHSETTINGS_CONNECTIONURL=http://elasticsearch:9200 \ -v ~/mattermost:/mattermost \ -w /mattermost/mattermost-server \ mattermost/mattermost-build-server:20200731_golang-1.14.6 \ - bash -c 'ulimit -n 8096; make ARGS="version" run-cli && make MM_SQLSETTINGS_DATASOURCE="mmuser:mostest@tcp(mysql:3306)/latest?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s" ARGS="version" run-cli' + bash -c "ulimit -n 8096; make ARGS='version' run-cli && make MM_SQLSETTINGS_DATASOURCE='mmuser:mostest@tcp(mysql:3306)/latest?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s' ARGS='version' run-cli" echo "Ignoring known MySQL mismatch: ChannelMembers.SchemeGuest" docker-compose --no-ansi exec -T mysql mysql -D migrated -uroot -pmostest -e "ALTER TABLE ChannelMembers DROP COLUMN SchemeGuest;" @@ -460,14 +432,14 @@ workflows: - test: name: test-mysql dbdriver: mysql - dbsource: "mmuser:mostest@tcp(mysql:3306)/mattermost_test?charset=utf8mb4,utf8" + dbsource: mmuser:mostest@tcp(mysql:3306)/mattermost_test?charset=utf8mb4,utf8 requires: - check-app-layers - check-store-layers - test: name: test-postgres dbdriver: postgres - dbsource: "postgres://mmuser:mostest@postgres:5432/mattermost_test?sslmode=disable&connect_timeout=10" + dbsource: postgres://mmuser:mostest@postgres:5432/mattermost_test?sslmode=disable&connect_timeout=10 requires: - check-app-layers - check-store-layers diff --git a/build/dotenv/test-schema-validation.env b/build/dotenv/test-schema-validation.env new file mode 100644 index 0000000000..272a15daac --- /dev/null +++ b/build/dotenv/test-schema-validation.env @@ -0,0 +1,10 @@ +CI_INBUCKET_HOST=inbucket +CI_MINIO_HOST=minio +CI_INBUCKET_PORT=10080 +CI_MINIO_PORT=9000 +CI_INBUCKET_SMTP_PORT=10025 +CI_LDAP_HOST=openldap +IS_CI=true +MM_EMAILSETTINGS_SMTPSERVER=inbucket +MM_EMAILSETTINGS_SMTPPORT=10025 +MM_ELASTICSEARCHSETTINGS_CONNECTIONURL=http://elasticsearch:9200 diff --git a/build/dotenv/test.env b/build/dotenv/test.env new file mode 100644 index 0000000000..e28c24ea04 --- /dev/null +++ b/build/dotenv/test.env @@ -0,0 +1,15 @@ +TEST_DATABASE_MYSQL_DSN=mmuser:mostest@tcp(mysql:3306)/mattermost_test?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s +TEST_DATABASE_POSTGRESQL_DSN=postgres://mmuser:mostest@postgres:5432/mattermost_test?sslmode=disable&connect_timeout=10 +TEST_DATABASE_MYSQL_ROOT_PASSWD=mostest +GOBIN=/mattermost/mattermost-server/bin + +CI_INBUCKET_HOST=inbucket +CI_MINIO_HOST=minio +CI_INBUCKET_PORT=10080 +CI_MINIO_PORT=9000 +CI_INBUCKET_SMTP_PORT=10025 +CI_LDAP_HOST=openldap +IS_CI=true +MM_EMAILSETTINGS_SMTPSERVER=inbucket +MM_EMAILSETTINGS_SMTPPORT=10025 +MM_ELASTICSEARCHSETTINGS_CONNECTIONURL=http://elasticsearch:9200 diff --git a/build/local-test-env.sh b/build/local-test-env.sh index b411c5847d..bc7fceee60 100755 --- a/build/local-test-env.sh +++ b/build/local-test-env.sh @@ -28,22 +28,11 @@ up() -v $GOPATH:/go \ -w /go/src/github.com/mattermost/mattermost-server/ \ --net ${COMPOSE_PROJECT_NAME}_mm-test \ + --env-file=dotenv/test.env -e GOPATH="/go" \ - -e TEST_DATABASE_MYSQL_DSN="mmuser:mostest@tcp(mysql:3306)/mattermost_test?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s" \ - -e TEST_DATABASE_POSTGRESQL_DSN="postgres://mmuser:mostest@postgres:5432/mattermost_test?sslmode=disable&connect_timeout=10" \ - -e TEST_DATABASE_MYSQL_ROOT_PASSWD="mostest" \ - -e CI_INBUCKET_HOST="inbucket" \ - -e CI_MINIO_HOST="minio" \ - -e CI_INBUCKET_PORT="10080" \ - -e CI_MINIO_PORT="9000" \ - -e CI_INBUCKET_SMTP_PORT="10025" \ - -e CI_LDAP_HOST="openldap" \ - -e IS_CI=true \ - -e MM_SQLSETTINGS_DATASOURCE="mmuser:mostest@tcp(mysql:3306)/mattermost_test?charset=utf8mb4,utf8" \ - -e MM_EMAILSETTINGS_SMTPSERVER="inbucket" \ - -e MM_EMAILSETTINGS_SMTPPORT="10025" \ - -e MM_ELASTICSEARCHSETTINGS_CONNECTIONURL="http://elasticsearch:9200" \ - mattermost/mattermost-build-server:20200731_golang-1.14.6 /bin/bash + -e MM_SQLSETTINGS_DATASOURCE="postgres://mmuser:mostest@postgres:5432/mattermost_test?sslmode=disable&connect_timeout=10" \ + -e MM_SQLSETTINGS_DRIVERNAME=postgres + mattermost/mattermost-build-server:20200731_golang-1.14.6 bash } down()