X-Git-Url: https://git.arvados.org/arvados-dev.git/blobdiff_plain/530468d1224a7c2251ee54bf5ec8d1f8d875de14..d8b5db8865d9d2929e9a3fe708d609d10622817f:/jenkins/arvados-workbench-extras/arvados-workbench-upgrade.sh diff --git a/jenkins/arvados-workbench-extras/arvados-workbench-upgrade.sh b/jenkins/arvados-workbench-extras/arvados-workbench-upgrade.sh index 33e05d3..e981517 100755 --- a/jenkins/arvados-workbench-extras/arvados-workbench-upgrade.sh +++ b/jenkins/arvados-workbench-extras/arvados-workbench-upgrade.sh @@ -1,13 +1,38 @@ #!/bin/bash +set -e + +if [ -e /etc/redhat-release ]; then + WWW_OWNER=nginx:nginx +else + # Assume we're on a Debian-based system for now. + WWW_OWNER=www-data:www-data +fi + +NGINX_SERVICE=${NGINX_SERVICE:-$(service --status-all 2>/dev/null \ + | grep -Eo '\bnginx[^[:space:]]*' || true)} +if [ -z "$NGINX_SERVICE" ]; then + cat >&2 <&2 < /dev/null +if [[ "$?" != "0" ]]; then + gem install bundle +fi +set -e +echo "Done." + echo "Running bundle install" (cd $RELEASE_PATH && RAILS_ENV=production bundle install --path $SHARED_PATH/vendor_bundle) echo "Done." @@ -28,21 +62,20 @@ echo "Done." # We do not need to precompile assets, they are already part of the package. echo "Ensuring directory and file permissions" -chown www-data:www-data $RELEASE_PATH/config/environment.rb -chown www-data:www-data $RELEASE_PATH/config.ru -chown www-data:www-data $RELEASE_PATH/config/database.yml -chown www-data:www-data $RELEASE_PATH/Gemfile.lock -chown -R www-data:www-data $RELEASE_PATH/tmp -chown -R www-data:www-data $SHARED_PATH/log -chown www-data:www-data $RELEASE_PATH/db/schema.rb +chown "$WWW_OWNER" $RELEASE_PATH/config/environment.rb +chown "$WWW_OWNER" $RELEASE_PATH/config.ru +chown "$WWW_OWNER" $RELEASE_PATH/config/database.yml +chown "$WWW_OWNER" $RELEASE_PATH/Gemfile.lock +chown -R "$WWW_OWNER" $RELEASE_PATH/tmp +chown -R "$WWW_OWNER" $SHARED_PATH/log +chown "$WWW_OWNER" $RELEASE_PATH/db/schema.rb chmod 644 $SHARED_PATH/log/* echo "Done." echo "Running sanity check" -(cd $RELEASE_PATH; RAILS_ENV=production bundle exec rake config:check) -echo "Done." - +(cd $RELEASE_PATH && RAILS_ENV=production bundle exec rake config:check) SANITY_CHECK_EXIT_CODE=$? +echo "Done." if [[ "$SANITY_CHECK_EXIT_CODE" != "0" ]]; then echo "Sanity check failed, aborting. Please roll back to the previous version of the package." @@ -52,6 +85,6 @@ fi # We do not need to run db:migrate because Workbench is stateless echo "Restarting nginx" -service nginx restart +service "$NGINX_SERVICE" restart echo "Done."