mirror of https://github.com/zulip/zulip.git
55 lines
2.0 KiB
Bash
55 lines
2.0 KiB
Bash
#!/usr/bin/env bash
|
|
# Given a Zulip production environment that had been installed with a
|
|
# previous version of Zulip, upgrade it to the commit being tested.
|
|
# This takes as input the tarball generated by production-build.
|
|
set -e
|
|
set -x
|
|
|
|
# Structurally, this script should just call upgrade-zulip. However,
|
|
# because of a set of issues that result in the previously installed
|
|
# GitHub Actions Docker containers not actually working on boot, we
|
|
# need to do some preparatory steps. It is a goal to delete these
|
|
# steps.
|
|
|
|
# Reinstall rabbitmq-server and supervisor.
|
|
#
|
|
# * For rabbitmq-server, we likely need to do this to work around the
|
|
# hostname changing on reboot causing RabbitMQ to not boot.
|
|
# * For supervisor, we don't understand why it doesn't start properly.
|
|
sudo apt-get remove rabbitmq-server supervisor && sudo apt-get purge rabbitmq-server supervisor
|
|
sudo apt-get install rabbitmq-server supervisor
|
|
|
|
# Start the postgresql service.
|
|
sudo service postgresql start
|
|
|
|
# Starting the rabbitmq-server
|
|
if ! sudo service rabbitmq-server start; then
|
|
echo
|
|
echo "Starting rabbitmq-server failed. Trying again:"
|
|
sudo service rabbitmq-server start
|
|
fi
|
|
|
|
# Apply puppet (still on the previous release the container was
|
|
# installed with). This should leave us with a working copy of Zulip
|
|
# running a previous release.
|
|
sudo /home/zulip/deployments/current/scripts/zulip-puppet-apply -f
|
|
|
|
# Stopping nginx service started by above command.
|
|
#
|
|
# This is a workaround for an unexpected `Unable to stop
|
|
# Service[nginx]` error in the puppet apply step of upgrade otherwise.
|
|
if ! sudo service nginx stop; then
|
|
echo
|
|
echo "Stoping nginx failed. Trying again:"
|
|
sudo service nginx stop
|
|
fi
|
|
|
|
# Zulip releases before 2.1.8/3.5/4.4 have a bug in their
|
|
# `upgrade-zulip` scripts, resulting in them exiting with status 0
|
|
# unconditionally. We work around that by running
|
|
# scripts/lib/upgrade-zulip instead.
|
|
UPGRADE_SCRIPT=/home/zulip/deployments/current/scripts/lib/upgrade-zulip
|
|
|
|
# Execute the upgrade.
|
|
sudo "$UPGRADE_SCRIPT" /tmp/zulip-server-test.tar.gz
|