mirror of https://github.com/zulip/zulip.git
45 lines
1.6 KiB
Bash
Executable File
45 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# In short, this provisions a Zulip development environment and then
|
|
# builds a Zulip release tarball (the same way we build them for an
|
|
# actual release). The actual test job will then install that.
|
|
|
|
set -e
|
|
set -x
|
|
|
|
# Provisioning may fail due to many issues but most of the times a network
|
|
# connection issue is the reason. So we are going to retry entire provisioning
|
|
# once again if that fixes our problem.
|
|
tools/provision --production-test-suite || {
|
|
ret=$?
|
|
if [ "$ret" = 1 ]; then
|
|
echo "\`provision\`: Something went wrong with the provisioning, might be a network issue, Retrying to provision..."
|
|
tools/provision --production-test-suite
|
|
else
|
|
echo "\`provision\`: Something REALLY BAD went wrong with the provisioning, not retrying."
|
|
exit "$ret"
|
|
fi
|
|
}
|
|
|
|
cp -a tools/ci/success-http-headers.txt ~/
|
|
source tools/ci/activate-venv
|
|
|
|
if ! ./tools/build-release-tarball test; then
|
|
echo "Attempting to output failure logging data"
|
|
cat /tmp/tmp.*/update-prod-static.log || true
|
|
exit 1
|
|
fi
|
|
mv /tmp/tmp.*/zulip-server-test.tar.gz ./
|
|
|
|
# Shut down all services so that restarting postgres and rebuilding
|
|
# the postgres database to match the prod installation setup will work.
|
|
sudo supervisorctl stop all
|
|
|
|
# Drop any open connections to the development postgres installation.
|
|
sudo "$(dirname "$0")/../../scripts/setup/terminate-psql-sessions" postgres zulip zulip_base
|
|
|
|
# Remove and recreate the postgres database
|
|
sudo pg_ctlcluster 10 main stop
|
|
sudo pg_dropcluster 10 main
|
|
sudo rm -rf /etc/postgresql/10/main /var/lib/postgresql/10/main
|
|
sudo pg_createcluster 10 main
|