Skip to content
Snippets Groups Projects
Commit e93889a1 authored by Jennifer Li's avatar Jennifer Li :three:
Browse files

Merge branch 'consolidate-database-setup-helpers' into 'master'

ci: Consolidate database-setup functions

See merge request !124747



Merged-by: default avatarJennifer Li <jli@gitlab.com>
Approved-by: default avatarJennifer Li <jli@gitlab.com>
Reviewed-by: default avatarRémy Coutable <remy@rymai.me>
Co-authored-by: default avatarRémy Coutable <remy@rymai.me>
parents ccfe4cf9 820480fd
1 merge request!124747ci: Consolidate database-setup functions
Pipeline #914036760 passed
......@@ -24,9 +24,7 @@ include:
# Only install knapsack after bundle install! Otherwise oddly some native
# gems could not be found under some circumstance. No idea why, hours wasted.
- run_timed_command "gem install knapsack --no-document"
- echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"
- section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn" # Do not use 'bundle exec' here
- echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"
.no-redis-cluster:
variables:
......
......@@ -10,43 +10,6 @@ fi
cp config/gitlab.yml.example config/gitlab.yml
sed -i 's/bin_path: \/usr\/bin\/git/bin_path: \/usr\/local\/bin\/git/' config/gitlab.yml
if [ "$DECOMPOSED_DB" == "true" ]; then
echo "Using decomposed database config (config/database.yml.decomposed-postgresql)"
cp config/database.yml.decomposed-postgresql config/database.yml
else
echo "Using decomposed database config (config/database.yml.postgresql)"
cp config/database.yml.postgresql config/database.yml
if [ "$CI_CONNECTION_DB" != "true" ]; then
echo "Disabling ci connection in config/database.yml"
sed -i "/ci:$/, /geo:$/ {s|^|#|;s|# geo:| geo:|;}" config/database.yml
fi
fi
# Set up Geo database if the job name matches `rspec-ee` or `geo`.
# Since Geo is an EE feature, we shouldn't set it up for non-EE tests.
if [[ "${CI_JOB_NAME}" =~ "rspec-ee" ]] || [[ "${CI_JOB_NAME}" =~ "geo" ]]; then
echoinfo "Geo DB will be set up."
else
echoinfo "Geo DB won't be set up."
sed -i '/geo:/,/^$/d' config/database.yml
fi
# Set up Embedding database if the job name matches `rspec-ee`
# Since Embedding is an EE feature, we shouldn't set it up for non-EE tests.
if [[ "${CI_JOB_NAME}" =~ "rspec-ee" ]]; then
echoinfo "Embedding DB will be set up."
else
echoinfo "Embedding DB won't be set up."
sed -i '/embedding:/,/^$/d' config/database.yml
fi
# Set user to a non-superuser to ensure we test permissions
sed -i 's/username: root/username: gitlab/g' config/database.yml
sed -i 's/localhost/postgres/g' config/database.yml
sed -i 's/username: git/username: postgres/g' config/database.yml
cp config/cable.yml.example config/cable.yml
sed -i 's|url:.*$|url: redis://redis:6379|g' config/cable.yml
......@@ -60,6 +23,8 @@ if [[ "$USE_REDIS_CLUSTER" != "false" ]] && [[ "$SETUP_DB" != "false" ]]; then
sed -i 's|- .*$|- redis://rediscluster:7001|g' config/redis.yml
fi
setup_database_yml
if [ "$SETUP_DB" != "false" ]; then
setup_db
elif getent hosts postgres; then
......
......@@ -127,6 +127,45 @@ function assets_compile_script() {
section_end "assets-compile"
}
function setup_database_yml() {
if [ "$DECOMPOSED_DB" == "true" ]; then
echo "Using decomposed database config (config/database.yml.decomposed-postgresql)"
cp config/database.yml.decomposed-postgresql config/database.yml
else
echo "Using decomposed database config (config/database.yml.postgresql)"
cp config/database.yml.postgresql config/database.yml
if [ "$CI_CONNECTION_DB" != "true" ]; then
echo "Disabling ci connection in config/database.yml"
sed -i "/ci:$/, /geo:$/ {s|^|#|;s|# geo:| geo:|;}" config/database.yml
fi
fi
# Set up Geo database if the job name matches `rspec-ee` or `geo`.
# Since Geo is an EE feature, we shouldn't set it up for non-EE tests.
if [[ "${CI_JOB_NAME}" =~ "rspec-ee" ]] || [[ "${CI_JOB_NAME}" =~ "geo" ]]; then
echoinfo "Geo DB will be set up."
else
echoinfo "Geo DB won't be set up."
sed -i '/geo:/,/^$/d' config/database.yml
fi
# Set up Embedding database if the job name matches `rspec-ee`
# Since Embedding is an EE feature, we shouldn't set it up for non-EE tests.
if [[ "${CI_JOB_NAME}" =~ "rspec-ee" ]]; then
echoinfo "Embedding DB will be set up."
else
echoinfo "Embedding DB won't be set up."
sed -i '/embedding:/,/^$/d' config/database.yml
fi
# Set user to a non-superuser to ensure we test permissions
sed -i 's/username: root/username: gitlab/g' config/database.yml
sed -i 's/localhost/postgres/g' config/database.yml
sed -i 's/username: git/username: postgres/g' config/database.yml
}
function setup_db_user_only() {
source scripts/create_postgres_user.sh
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment