[ARVADOS-WORKBENCH2] updated: 1.4.1-314-g855193b8
Git user
git at public.arvados.org
Mon Apr 20 22:38:32 UTC 2020
Summary of changes:
tools/run-integration-tests.sh | 73 ++++++++++++++++++++----------------------
1 file changed, 35 insertions(+), 38 deletions(-)
via 855193b8c5ab28a2b82999b0f4911d17f874303b (commit)
from 8831e4dcad5d21cc86257b70123e542de4afe1b1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 855193b8c5ab28a2b82999b0f4911d17f874303b
Author: Lucas Di Pentima <lucas at di-pentima.com.ar>
Date: Mon Apr 20 19:34:40 2020 -0300
16029: Enhances orquestration script in various ways.
* Checks if wb2's config.json exists and quits with a message.
* Adds timeouts on arvados-boot & wb2 executions to avoid wating for ever.
* If timeouts are reached, exits with error code and doesn't run tests.
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas at di-pentima.com.ar>
diff --git a/tools/run-integration-tests.sh b/tools/run-integration-tests.sh
index 250bc48c..74476b8e 100755
--- a/tools/run-integration-tests.sh
+++ b/tools/run-integration-tests.sh
@@ -5,10 +5,11 @@
set -e -o pipefail
-cleanup_arvboot() {
+cleanup() {
set -x
- kill ${arvboot_PID} ${consume_stdout_PID}
- wait ${arvboot_PID} ${consume_stdout_PID} || true
+ 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}
echo >&2 "done"
}
@@ -23,18 +24,23 @@ random_free_port() {
# Allow self-signed certs on 'wait-on'
export NODE_TLS_REJECT_UNAUTHORIZED=0
-WORKDIR=`mktemp -d`
-WORKDIR=/tmp/arvboot # For script testing purposes...
-ARVADOS_LOG=${WORKDIR}/arvados.log
-ARVADOS_CONF=`pwd`/tools/arvados_config.yml
+ARVADOS_DIR=`mktemp -d`
+ARVADOS_LOG=${ARVADOS_DIR}/arvados.log
+WB2_DIR=`pwd`
+ARVADOS_CONF=${WB2_DIR}/tools/arvados_config.yml
-if [ ! -e "${WORKDIR}/lib" ]; then
+if [ -f "${WB2_DIR}/public/config.json" ]; then
+ echo "ERROR: Cannot run with Workbench2's public/config.json file"
+ exit 1
+fi
+
+if [ ! -d "${ARVADOS_DIR}/lib" ]; then
echo "Downloading arvados..."
- git clone https://git.arvados.org/arvados.git ${WORKDIR} || exit 1
+ git clone https://git.arvados.org/arvados.git ${ARVADOS_DIR} || exit 1
fi
echo "Building & installing arvados-server..."
-cd ${WORKDIR}
+cd ${ARVADOS_DIR}
go mod download || exit 1
cd cmd/arvados-server
go install
@@ -43,46 +49,37 @@ cd -
echo "Installing dev dependencies..."
~/go/bin/arvados-server install -type test || exit 1
-echo "Running arvados in test mode..."
-# ARVADOS_PORT=`random_free_port`
-# go run ./cmd/arvados-server boot \
-# -config ${ARVADOS_CONF} \
-# -type test \
-# -own-temporary-database \
-# -controller-address :${ARVADOS_PORT} \
-# -listen-host localhost > ${ARVADOS_LOG} 2>&1 &
+echo "Launching arvados in test mode..."
coproc arvboot (~/go/bin/arvados-server boot \
- -type test \
- -config ${ARVADOS_CONF} \
- -own-temporary-database \
- -timeout 20m)
-trap cleanup_arvboot ERR EXIT
+ -type test \
+ -config ${ARVADOS_CONF} \
+ -own-temporary-database \
+ -timeout 20m 2> ${ARVADOS_LOG})
+trap cleanup ERR EXIT
-read controllerURL <&"${arvboot[0]}"
+read controllerURL <&"${arvboot[0]}" || exit 1
+echo "Arvados up and running at ${controllerURL}"
+IFS='/' ; read -ra controllerHostPort <<< "${controllerURL}" ; unset IFS
+controllerHostPort=${controllerHostPort[2]}
# Copy coproc's stdout to stderr, to ensure `arvados-server boot`
# doesn't get blocked trying to write stdout.
-exec 7<&"${arvbboot[0]}"; coproc consume_stdout (cat <&7 >&2)
+exec 7<&"${arvboot[0]}"; coproc consume_stdout (cat <&7 >&2)
-cd -
-echo "Running workbench2..."
+cd ${WB2_DIR}
+echo "Launching workbench2..."
WB2_PORT=`random_free_port`
-PORT=${WB2_PORT} REACT_APP_ARVADOS_API_HOST=${controllerURL} \
- yarn start &
+coproc wb2 (PORT=${WB2_PORT} \
+ REACT_APP_ARVADOS_API_HOST=${controllerHostPort} \
+ yarn start)
+exec 8<&"${wb2[0]}"; coproc consume_wb2_stdout (cat <&8 >&2)
-# Wait for arvados & workbench2 to be up.
+# Wait for workbench2 to be up.
# Using https-get to avoid false positive 'ready' detection.
-# yarn run wait-on --httpTimeout 300000 https-get://localhost:${ARVADOS_PORT}/discovery/v1/apis/arvados/v1/rest ||
-yarn run wait-on --httpTimeout 300000 https-get://localhost:${WB2_PORT}
+yarn run wait-on --timeout 300000 https-get://localhost:${WB2_PORT} || exit 1
echo "Running tests..."
CYPRESS_system_token=systemusertesttoken1234567890aoeuidhtnsqjkxbmwvzpy \
CYPRESS_controller_url=${controllerURL} \
CYPRESS_BASE_URL=https://localhost:${WB2_PORT} \
yarn run cypress run
-TEST_EXIT_CODE=$?
-
-# Cleanup
-rm -rf ${WORKDIR}
-
-exit ${TEST_EXIT_CODE}
\ No newline at end of file
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list