Skip to content

Commit 04b4387

Browse files
author
Michael Vasseur
committed
Allow for a testing database for unit tests
1 parent ca60fdd commit 04b4387

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

.github/jobs/baseinstall.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
export version="$1"
66
db=${2:-install}
77

8+
# If this script is called from unit-tests.sh, we use the test environment
9+
export APP_ENV="${3:-prod}"
10+
11+
# In the test environment, we need to use a different database
12+
[ "$APP_ENV" = "prod" ] && DATABASE_NAME=domjudge || DATABASE_NAME=domjudge_test
13+
814
set -eux
915

1016
PHPVERSION=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION."\n";')
@@ -50,21 +56,21 @@ cat > ~/.my.cnf <<EOF
5056
[client]
5157
host=sqlserver
5258
user=root
53-
password=root
59+
password=${MYSQL_ROOT_PASSWORD}
5460
EOF
5561
cat ~/.my.cnf
5662

57-
mysql_root "CREATE DATABASE IF NOT EXISTS \`domjudge\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
58-
mysql_root "CREATE USER IF NOT EXISTS \`domjudge\`@'%' IDENTIFIED BY 'domjudge';"
59-
mysql_root "GRANT SELECT, INSERT, UPDATE, DELETE ON \`domjudge\`.* TO 'domjudge'@'%';"
63+
mysql_root "CREATE DATABASE IF NOT EXISTS \`$DATABASE_NAME\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
64+
mysql_root "CREATE USER IF NOT EXISTS \`$DATABASE_NAME\`@'%' IDENTIFIED BY 'domjudge';"
65+
mysql_root "GRANT SELECT, INSERT, UPDATE, DELETE ON \`$DATABASE_NAME\`.* TO 'domjudge'@'%';"
6066
mysql_root "FLUSH PRIVILEGES;"
6167

6268
# Show some MySQL debugging
6369
mysql_root "show databases"
6470
mysql_root "SELECT CURRENT_USER();"
6571
mysql_root "SELECT USER();"
6672
mysql_root "SELECT user,host FROM mysql.user"
67-
echo "unused:sqlserver:domjudge:domjudge:domjudge:3306" > /opt/domjudge/domserver/etc/dbpasswords.secret
73+
echo "unused:sqlserver:domjudge:domjudge:$DATABASE_NAME:3306" > /opt/domjudge/domserver/etc/dbpasswords.secret
6874
mysql_user "SELECT CURRENT_USER();"
6975
mysql_user "SELECT USER();"
7076
section_end
@@ -113,6 +119,10 @@ section_end
113119

114120
if [ "${db}" = "install" ]; then
115121
section_start "Install the example data"
122+
if [ "$version" = "unit" ]; then
123+
# Make sure admin has no team associated so we will not insert submissions during unit tests.
124+
mysql_root "UPDATE user SET teamid=null WHERE userid=1;" $DATABASE_NAME
125+
fi
116126
/opt/domjudge/domserver/bin/dj_setup_database -uroot -proot install-examples | tee -a "$ARTIFACTS/mysql.txt"
117127
section_end
118128
fi

0 commit comments

Comments
 (0)