diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rwxr-xr-x | script/rails-post-deploy | 23 |
2 files changed, 23 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore index 45865fd02..5d5f500af 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ TAGS /public/*theme /vendor/bundle .bundle +.bundler-has-run bin/ config/aliases .sass-cache diff --git a/script/rails-post-deploy b/script/rails-post-deploy index 193d0bbec..a2761ecbc 100755 --- a/script/rails-post-deploy +++ b/script/rails-post-deploy @@ -80,7 +80,28 @@ then bundle_install_options="--without development:test --deployment" fi -bundle install $bundle_install_options +# Ordinarily we would expect simply to run "bundle install" here. +# However, at the time of writing there is a bug in bundler that +# causes gems from github to be rebuilt every time bundle install +# is run, which makes the process very extremely slow in our case +# because Xapian takes a long time to build. Running +# "bundle exec bundle install" is a workaround for this bug. +# +# However clearly one cannot run bundle exec till the bundle has +# initially been installed, so we use a flag file .bundler-has-run +# to indicate whether we are doing an initial install. +# +# If you ever need to rerun the initial install, just remove +# this flag file. +# +# https://groups.google.com/forum/?fromgroups#!topic/alaveteli-dev/lCDuW9H4uBI +if [ -e .bundler-has-run ] +then + bundle exec bundle install $bundle_install_options +else + bundle install $bundle_install_options + touch .bundler-has-run +fi if [ -n "$OPTION_THEME_URLS" ] then |