Merge branch '21128-toolbar-context-menu'
[arvados-workbench2.git] / tools / run-integration-tests.sh
index 140de3c8ad2fcbcf9c7bce5ba0e7d7c91bfe8c77..132b0e53266e79d4ff7b42acb451cc6b9ea4261b 100755 (executable)
@@ -10,7 +10,7 @@ cleanup() {
     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
-    if [ "${CLEANUP_ARVADOS_DIR}" -eq "1" ]; then
+    if [ ${CLEANUP_ARVADOS_DIR} -eq 1 ]; then
         rm -rf ${ARVADOS_DIR}
     fi
     echo >&2 "done"
@@ -36,9 +36,9 @@ usage() {
 # Allow self-signed certs on 'wait-on'
 export NODE_TLS_REJECT_UNAUTHORIZED=0
 
+ARVADOS_DIR="unset"
 CLEANUP_ARVADOS_DIR=0
 CYPRESS_MODE="run"
-ARVADOS_DIR=`mktemp -d`
 WB2_DIR=`pwd`
 
 while getopts "ia:w:" o; do
@@ -61,8 +61,16 @@ while getopts "ia:w:" o; do
 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
+VOCABULARY_CONF=${WB2_DIR}/tools/example-vocabulary.json
 
 if [ ! -f "${WB2_DIR}/src/index.tsx" ]; then
     echo "ERROR: '${WB2_DIR}' isn't workbench2's directory"
@@ -88,23 +96,31 @@ fi
 
 echo "Building & installing arvados-server..."
 cd ${ARVADOS_DIR}
-go mod download || exit 1
+GOFLAGS=-buildvcs=false go mod download || exit 1
 cd cmd/arvados-server
-go install
+GOFLAGS=-buildvcs=false go install
 cd -
 
 echo "Installing dev dependencies..."
 ~/go/bin/arvados-server install -type test || exit 1
 
 echo "Launching arvados in test mode..."
+TMPSUBDIR=$(mktemp -d -p /tmp | cut -d \/ -f3) # Removes the /tmp/ part for the regex below
+TMPDIR=/tmp/${TMPSUBDIR}
+cp ${VOCABULARY_CONF} ${TMPDIR}/voc.json
+cp ${ARVADOS_CONF} ${TMPDIR}/arvados.yml
+sed -i "s/VocabularyPath: \".*\"/VocabularyPath: \"\/tmp\/${TMPSUBDIR}\/voc.json\"/" ${TMPDIR}/arvados.yml
 coproc arvboot (~/go/bin/arvados-server boot \
     -type test \
-    -config ${ARVADOS_CONF} \
+    -config ${TMPDIR}/arvados.yml \
+    -no-workbench1 \
+    -no-workbench2 \
     -own-temporary-database \
     -timeout 20m 2> ${ARVADOS_LOG})
 trap cleanup ERR EXIT
 
-read controllerURL <&"${arvboot[0]}" || exit 1
+read controllerInfo <&"${arvboot[0]}" || exit 1
+controllerURL=`echo "$controllerInfo" | awk '{print $1;}'`;
 echo "Arvados up and running at ${controllerURL}"
 IFS='/' ; read -ra controllerHostPort <<< "${controllerURL}" ; unset IFS
 controllerHostPort=${controllerHostPort[2]}
@@ -123,10 +139,10 @@ exec 8<&"${wb2[0]}"; coproc consume_wb2_stdout (cat <&8 >&2)
 
 # Wait for workbench2 to be up.
 # Using https-get to avoid false positive 'ready' detection.
-yarn run wait-on --timeout 300000 https-get://localhost:${WB2_PORT} || exit 1
+yarn run wait-on --timeout 300000 https-get://127.0.0.1:${WB2_PORT} || exit 1
 
 echo "Running tests..."
 CYPRESS_system_token=systemusertesttoken1234567890aoeuidhtnsqjkxbmwvzpy \
     CYPRESS_controller_url=${controllerURL} \
-    CYPRESS_BASE_URL=https://localhost:${WB2_PORT} \
+    CYPRESS_BASE_URL=https://127.0.0.1:${WB2_PORT} \
     yarn run cypress ${CYPRESS_MODE}