emqx/scripts/relup-test/run-relup-lux.sh

76 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
## This script needs the 'lux' command in PATH
## it runs the scripts/relup-test/relup.lux script
set -euo pipefail
old_vsn="${1:-}"
if [ -z "$old_vsn" ]; then
echo "arg1 should be the upgrade base version"
exit 1
fi
rebuild="${2:-no_rebuild}"
# ensure dir
cd -P -- "$(dirname -- "$0")/../.."
set -x
if [ ! -d '.git' ] && [ -z "${CUR_VSN:-}" ]; then
echo "Unable to resolve current version, because it's not a git repo, and CUR_VSN is not set"
exit 1
fi
case "$old_vsn" in
e*)
cur_vsn="${CUR_VSN:-$(./pkg-vsn.sh emqx-enterprise)}"
profile='emqx-enterprise'
;;
v*)
cur_vsn="${CUR_VSN:-$(./pkg-vsn.sh emqx)}"
profile='emqx'
;;
*)
echo "unknown old version $old_vsn"
exit 1
;;
esac
if [ "$rebuild" = "--build" ]; then
make "${profile}-tgz"
fi
# From now on, no need for the v|e prefix
OLD_VSN="${old_vsn#[e|v]}"
OLD_PKG="$(pwd)/_upgrade_base/${profile}-${OLD_VSN}-ubuntu20.04-amd64.tar.gz"
CUR_PKG="$(pwd)/_packages/${profile}/${profile}-${cur_vsn}-ubuntu20.04-amd64.tar.gz"
if [ ! -f "$OLD_PKG" ]; then
echo "$OLD_PKG not found"
exit 1
fi
if [ ! -f "$CUR_PKG" ]; then
echo "$CUR_PKG not found"
exit 1
fi
# start two nodes and their friends (webhook server and a bench) in docker
./scripts/relup-test/start-relup-test-cluster.sh 'ubuntu:20.04' "$OLD_PKG"
# run relup tests
lux \
--progress verbose \
--case_timeout infinity \
--var PROJ_ROOT="$(pwd)" \
--var VSN="$cur_vsn" \
--var CUR_PKG="$CUR_PKG" \
--var OLD_VSN="$OLD_VSN" \
--var NODE1="node1.emqx.io" \
--var NODE2="node2.emqx.io" \
--var BENCH="bench.emqx.io" \
./scripts/relup-test/relup.lux