diff --git a/build/root/Makefile b/build/root/Makefile index 41ed3781108..f1f96ab506e 100644 --- a/build/root/Makefile +++ b/build/root/Makefile @@ -222,6 +222,8 @@ define TEST_E2E_NODE_HELP_INFO # Defaults to "/tmp/_artifacts/$$(date +%y%m%dT%H%M%S)". # LIST_IMAGES: For REMOTE=true only. If true, don't run tests. Just output the # list of available images for testing. Defaults to false. +# TIMEOUT: For REMOTE=true only. How long (in golang duration format) to wait +# for ginkgo tests to complete. Defaults to 45m. # PARALLELISM: The number of ginkgo nodes to run. Defaults to 8. # RUNTIME: Container runtime to use (eg. docker, remote). # Defaults to "docker". diff --git a/hack/make-rules/test-e2e-node.sh b/hack/make-rules/test-e2e-node.sh index 870e40caece..e3d0276ec62 100755 --- a/hack/make-rules/test-e2e-node.sh +++ b/hack/make-rules/test-e2e-node.sh @@ -41,6 +41,7 @@ container_runtime_endpoint=${CONTAINER_RUNTIME_ENDPOINT:-""} image_service_endpoint=${IMAGE_SERVICE_ENDPOINT:-""} run_until_failure=${RUN_UNTIL_FAILURE:-"false"} test_args=${TEST_ARGS:-""} +timeout_arg="" system_spec_name=${SYSTEM_SPEC_NAME:-} extra_envs=${EXTRA_ENVS:-} @@ -104,6 +105,9 @@ if [ "${remote}" = true ] ; then delete_instances=${DELETE_INSTANCES:-"false"} preemptible_instances=${PREEMPTIBLE_INSTANCES:-"false"} test_suite=${TEST_SUITE:-"default"} + if [[ -n "${TIMEOUT:-}" ]] ; then + timeout_arg="--test-timeout=${TIMEOUT}" + fi # Get the compute zone zone=${ZONE:-"$(gcloud info --format='value(config.properties.compute.zone)')"} @@ -159,6 +163,7 @@ if [ "${remote}" = true ] ; then --delete-instances="${delete_instances}" --test_args="${test_args}" --instance-metadata="${metadata}" \ --image-config-file="${image_config_file}" --system-spec-name="${system_spec_name}" \ --preemptible-instances="${preemptible_instances}" --extra-envs="${extra_envs}" --test-suite="${test_suite}" \ + "${timeout_arg}" \ 2>&1 | tee -i "${artifacts}/build-log.txt" exit $?