X Tutup
#!/usr/bin/env bash # This script is used for running e2e tests via python framework, and intended to run in CI set -euo pipefail function usage(){ cat << EOF Usage: $0 --aleph-node BINARY path to aleph-node binary --chain-bootstrapper BINARY path to chain-bootstrapper binary --testcase NAME name of python file in local-tests directory to run EOF exit 0 } while [[ $# -gt 0 ]]; do case "$1" in --aleph-node) ALEPH_NODE_BINARY="$2" shift;shift ;; --chain-bootstrapper) CHAIN_BOOTSTRAPPER="$2" shift;shift ;; --testcase) TESTCASE="$2" shift;shift ;; --help) usage shift ;; *) echo "Unrecognized argument $1!" ;; esac done # relative paths should be improved in python scripts CI, as it matters that below line is pushd local-tests/ > /dev/null if [[ ! -f "${ALEPH_NODE_BINARY}" ]]; then echo "Error: aleph-node binary does not exist at given path ${ALEPH_NODE_BINARY}" exit 1 fi if [[ ! -f "${CHAIN_BOOTSTRAPPER}" ]]; then echo "Error: chain-bootstrapper binary does not exist at given path ${CHAIN_BOOTSTRAPPER}" exit 1 fi if [[ -z "${TESTCASE}" ]]; then echo "Error: TESTCASE name must not be empty." exit 1 fi file_name_to_run="${TESTCASE}.py" if [[ ! -x "${file_name_to_run}" ]]; then echo "Error: testcase ${file_name_to_run} does not exist or it's not executable." popd > /dev/null exit 1 fi chmod +x "${ALEPH_NODE_BINARY}" chmod +x "${CHAIN_BOOTSTRAPPER}" echo "Installing python requirements" pip install -r requirements.txt # https://stackoverflow.com/questions/59812009/what-is-the-use-of-pythonunbuffered-in-docker-file # Setting PYTHONUNBUFFERED to a non-empty value different from 0 ensures that the python output i.e. # the stdout and stderr streams are sent straight to terminal (e.g. your container log) without being # first buffered and that you can see the output of your application. export PYTHONUNBUFFERED=y export ALEPH_NODE_BINARY export CHAIN_BOOTSTRAPPER export RUST_LOG=debug export WORKDIR=$(mktemp -d) echo "WORKDIR is ${WORKDIR}" eval "./${file_name_to_run}" popd > /dev/null
X Tutup