summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorLin Jen-Shin <godfat@godfat.org>2017-03-22 22:31:07 +0800
committerLin Jen-Shin <godfat@godfat.org>2017-03-24 04:47:00 +0800
commit3e1bd5570f0ca277fb82a45d83f5bf44f3663a0d (patch)
tree50c19275e482f22cd8b6fdcbe904c8c74e5e5e8f /scripts
parent435468af380d0200c5b133f1c0263daf2c8a7783 (diff)
downloadgitlab-ce-3e1bd5570f0ca277fb82a45d83f5bf44f3663a0d.tar.gz
Test both PostgreSQL and MySQL for the win.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/prepare_build.sh48
-rw-r--r--scripts/utils.sh14
2 files changed, 44 insertions, 18 deletions
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
+}