From 3e1bd5570f0ca277fb82a45d83f5bf44f3663a0d Mon Sep 17 00:00:00 2001 From: Lin Jen-Shin Date: Wed, 22 Mar 2017 22:31:07 +0800 Subject: Test both PostgreSQL and MySQL for the win. --- scripts/prepare_build.sh | 48 ++++++++++++++++++++++++++++++------------------ scripts/utils.sh | 14 ++++++++++++++ 2 files changed, 44 insertions(+), 18 deletions(-) create mode 100644 scripts/utils.sh (limited to 'scripts') diff --git a/scripts/prepare_build.sh b/scripts/prepare_build.sh index 6e3f76b8399..822bb83e6c4 100755 --- a/scripts/prepare_build.sh +++ b/scripts/prepare_build.sh @@ -1,25 +1,21 @@ #!/bin/sh -retry() { - if eval "$@"; then - return 0 - fi +. scripts/utils.sh - for i in 2 1; do - sleep 3s - echo "Retrying $i..." - if eval "$@"; then - return 0 - fi - done - return 1 -} +export SETUP_DB=${SETUP_DB:-true} +export GITLAB_DATABASE=${GITLAB_DATABASE:-postgresql} +export USE_BUNDLE_INSTALL=${USE_BUNDLE_INSTALL:-true} if [ -f /.dockerenv ] || [ -f ./dockerinit ]; then - cp config/database.yml.mysql config/database.yml - sed -i 's/username:.*/username: root/g' config/database.yml - sed -i 's/password:.*/password:/g' config/database.yml - sed -i 's/# socket:.*/host: mysql/g' config/database.yml + cp config/database.yml.$GITLAB_DATABASE config/database.yml + + if [ "$GITLAB_DATABASE" = 'postgresql' ]; then + sed -i 's/# host:.*/host: postgres/g' config/database.yml + else # assume it's mysql + sed -i 's/username:.*/username: root/g' config/database.yml + sed -i 's/password:.*/password:/g' config/database.yml + sed -i 's/# socket:.*/host: mysql/g' config/database.yml + fi cp config/resque.yml.example config/resque.yml sed -i 's/localhost/redis/g' config/resque.yml @@ -28,8 +24,24 @@ if [ -f /.dockerenv ] || [ -f ./dockerinit ]; then else rnd=$(awk 'BEGIN { srand() ; printf("%d\n",rand()*5) }') export PATH="$HOME/bin:/usr/local/bin:/usr/bin:/bin" - cp config/database.yml.mysql config/database.yml + cp config/database.yml.$GITLAB_DATABASE config/database.yml sed "s/username\:.*$/username\: runner/" -i config/database.yml sed "s/password\:.*$/password\: 'password'/" -i config/database.yml sed "s/gitlabhq_test/gitlabhq_test_$rnd/" -i config/database.yml fi + +cp config/gitlab.yml.example config/gitlab.yml + +if [ "$USE_BUNDLE_INSTALL" != "false" ]; then + retry bundle install --without production --jobs $(nproc) --clean $FLAGS +fi + +retry gem install knapsack + +if [ "$SETUP_DB" != "false" ]; then + bundle exec rake db:drop db:create db:schema:load db:migrate + + if [ "$GITLAB_DATABASE" = "mysql" ]; then + bundle exec rake add_limits_mysql + fi +fi diff --git a/scripts/utils.sh b/scripts/utils.sh new file mode 100644 index 00000000000..6faa701f0ce --- /dev/null +++ b/scripts/utils.sh @@ -0,0 +1,14 @@ +retry() { + if eval "$@"; then + return 0 + fi + + for i in 2 1; do + sleep 3s + echo "Retrying $i..." + if eval "$@"; then + return 0 + fi + done + return 1 +} -- cgit v1.2.1