zulip/tools/ci/production-upgrade

42 lines
1.4 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.
#
# * For rabbitmq-server, we likely need to do this to work around the
# hostname changing on reboot causing RabbitMQ to not boot.
sudo apt-get -y purge rabbitmq-server
sudo apt-get -y install rabbitmq-server
# 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
# Start the supervisor
sudo service supervisor start
# 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