X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/855193b8c5ab28a2b82999b0f4911d17f874303b..ed9e3a9e1e1dcdec012ff3b03d0cf1b87c4ffb6b:/tools/run-integration-tests.sh diff --git a/tools/run-integration-tests.sh b/tools/run-integration-tests.sh index 74476b8e31..159bfc1cb3 100755 --- a/tools/run-integration-tests.sh +++ b/tools/run-integration-tests.sh @@ -7,9 +7,12 @@ set -e -o pipefail cleanup() { set -x + set +e +o pipefail kill ${arvboot_PID} ${consume_stdout_PID} ${wb2_PID} ${consume_wb2_stdout_PID} wait ${arvboot_PID} ${consume_stdout_PID} ${wb2_PID} ${consume_wb2_stdout_PID} || true - rm -rf ${ARVADOS_DIR} + if [ ${CLEANUP_ARVADOS_DIR} -eq 1 ]; then + rm -rf ${ARVADOS_DIR} + fi echo >&2 "done" } @@ -21,20 +24,71 @@ random_free_port() { echo $port } +usage() { + echo "Usage: ${0} [options]" + echo "Options:" + echo " -i Run Cypress in interactive mode." + echo " -a PATH Arvados dir. If PATH doesn't exist, a repo clone is downloaded there." + echo " -w PATH Workbench2 dir. Default: Current working directory" + exit 0 +} + # Allow self-signed certs on 'wait-on' export NODE_TLS_REJECT_UNAUTHORIZED=0 -ARVADOS_DIR=`mktemp -d` -ARVADOS_LOG=${ARVADOS_DIR}/arvados.log +ARVADOS_DIR="unset" +CLEANUP_ARVADOS_DIR=0 +CYPRESS_MODE="run" WB2_DIR=`pwd` + +while getopts "ia:w:" o; do + case "${o}" in + i) + # Interactive mode + CYPRESS_MODE="open" + ;; + a) + ARVADOS_DIR=${OPTARG} + ;; + w) + WB2_DIR=${OPTARG} + ;; + *) + echo "Invalid Option: -$OPTARG" 1>&2 + usage + ;; + esac +done +shift $((OPTIND-1)) + +if [ "${ARVADOS_DIR}" = "unset" ]; then + echo "ARVADOS_DIR is unset, creating a temporary directory for new checkout" + ARVADOS_DIR=`mktemp -d` +fi + +echo "ARVADOS_DIR is ${ARVADOS_DIR}" + +ARVADOS_LOG=${ARVADOS_DIR}/arvados.log ARVADOS_CONF=${WB2_DIR}/tools/arvados_config.yml +if [ ! -f "${WB2_DIR}/src/index.tsx" ]; then + echo "ERROR: '${WB2_DIR}' isn't workbench2's directory" + usage +fi + +if [ ! -f ${ARVADOS_CONF} ]; then + echo "ERROR: Arvados config file ${ARVADOS_CONF} not found" + exit 1 +fi + if [ -f "${WB2_DIR}/public/config.json" ]; then - echo "ERROR: Cannot run with Workbench2's public/config.json file" + echo "ERROR: Please move public/config.json file out of the way" exit 1 fi -if [ ! -d "${ARVADOS_DIR}/lib" ]; then +if [ ! -d "${ARVADOS_DIR}/.git" ]; then + mkdir -p ${ARVADOS_DIR} || exit 1 + CLEANUP_ARVADOS_DIR=1 echo "Downloading arvados..." git clone https://git.arvados.org/arvados.git ${ARVADOS_DIR} || exit 1 fi @@ -53,6 +107,7 @@ echo "Launching arvados in test mode..." coproc arvboot (~/go/bin/arvados-server boot \ -type test \ -config ${ARVADOS_CONF} \ + -no-workbench1 \ -own-temporary-database \ -timeout 20m 2> ${ARVADOS_LOG}) trap cleanup ERR EXIT @@ -82,4 +137,4 @@ echo "Running tests..." CYPRESS_system_token=systemusertesttoken1234567890aoeuidhtnsqjkxbmwvzpy \ CYPRESS_controller_url=${controllerURL} \ CYPRESS_BASE_URL=https://localhost:${WB2_PORT} \ - yarn run cypress run + yarn run cypress ${CYPRESS_MODE}