aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rwxr-xr-xscript/rails-post-deploy23
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