diff options
| author | Luke "Jared" Bennett <lbennett@gitlab.com> | 2017-04-26 11:13:42 +0000 |
|---|---|---|
| committer | Luke "Jared" Bennett <lbennett@gitlab.com> | 2017-04-26 11:13:42 +0000 |
| commit | ca6cc6014eed02b2e74bc8ffe65d3c1cc2e511b4 (patch) | |
| tree | 2c7f9b643463a69b5010b8942eaa2e3c58fd59c9 /scripts | |
| parent | af6e3e57e4c0ee861e26310c65be2e5e8547ca68 (diff) | |
| parent | 52bd4b88dc557f0b3c63e82d0f2093f22b28ae9d (diff) | |
| download | gitlab-ce-ca6cc6014eed02b2e74bc8ffe65d3c1cc2e511b4.tar.gz | |
Merge branch 'master' into 'add-sentry-js-again-with-vue'
# Conflicts:
# config/webpack.config.js
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/prepare_build.sh | 60 | ||||
| -rw-r--r-- | scripts/utils.sh | 14 |
2 files changed, 55 insertions, 19 deletions
diff --git a/scripts/prepare_build.sh b/scripts/prepare_build.sh index 6cacb81b8bc..de7379425cf 100755 --- a/scripts/prepare_build.sh +++ b/scripts/prepare_build.sh @@ -1,26 +1,48 @@ #!/bin/sh -retry() { - if eval "$@"; then - return 0 - fi +. scripts/utils.sh + +export SETUP_DB=${SETUP_DB:-true} +export USE_BUNDLE_INSTALL=${USE_BUNDLE_INSTALL:-true} +export BUNDLE_INSTALL_FLAGS="--without production --jobs $(nproc) --path vendor --retry 3 --quiet" + +# Determine the database by looking at the job name. +# For example, we'll get pg if the job is `rspec pg 19 20` +export GITLAB_DATABASE=$(echo $CI_JOB_NAME | cut -f2 -d' ') + +# This would make the default database postgresql, and we could also use +# pg to mean postgresql. +if [ "$GITLAB_DATABASE" != 'mysql' ]; then + export GITLAB_DATABASE='postgresql' +fi + +cp config/database.yml.$GITLAB_DATABASE config/database.yml - for i in 2 1; do - sleep 3s - echo "Retrying $i..." - if eval "$@"; then - return 0 - fi - done - return 1 -} - -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 +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/# host:.*/host: mysql/g' config/database.yml +fi cp config/resque.yml.example config/resque.yml sed -i 's/localhost/redis/g' config/resque.yml -export FLAGS="--path vendor --retry 3 --quiet" +cp config/gitlab.yml.example config/gitlab.yml + +if [ "$USE_BUNDLE_INSTALL" != "false" ]; then + retry bundle install --clean $BUNDLE_INSTALL_FLAGS +fi + +# Only install knapsack after bundle install! Otherwise oddly some native +# gems could not be found under some circumstance. No idea why, hours wasted. +retry gem install knapsack fog-aws mime-types + +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 +} |
