From: Joe Orton Date: Fri, 6 Jun 2025 11:50:43 +0000 (+0000) Subject: CI: Reintroduce timeout/retry handling for "svn export" specific to X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=90536be744621768c5ba594fcac7d79c7bc7e881;p=thirdparty%2Fapache%2Fhttpd.git CI: Reintroduce timeout/retry handling for "svn export" specific to Apache::Test handling. Github: closes #536 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1926174 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/test/travis_before_linux.sh b/test/travis_before_linux.sh index 00023f7b1e..9b6267722d 100755 --- a/test/travis_before_linux.sh +++ b/test/travis_before_linux.sh @@ -21,6 +21,37 @@ if grep ip6-localhost /etc/hosts; then cat /etc/hosts fi +# Use a rudimental retry workflow as workaround to svn export hanging +# for minutes or failing randomly. Travis automatically kills a build +# if one step takes more than 10 minutes without reporting any +# progress. +function run_svn_export() { + local url=$1 + local revision=$2 + local dest_dir=$3 + local max_tries=$4 + + # Disable -e to allow fail/retry + set +e + + for i in $(seq 1 $max_tries) + do + timeout 60 svn export -r ${revision} --force -q $url $dest_dir + if [ $? -eq 0 ]; then + break + else + if [ $i -eq $max_tries ]; then + exit 1 + else + sleep $((100 * i)) + fi + fi + done + + # Restore -e behavior after fail/retry + set -e +} + function install_apx() { local name=$1 local version=$2 @@ -112,7 +143,7 @@ if ! test -v SKIP_TESTING -o -v NO_TEST_FRAMEWORK; then # use a checkout of trunk until there is an updated CPAN release # with that revision. if test -v TEST_OPENSSL3; then - svn co -q https://svn.apache.org/repos/asf/perl/Apache-Test/trunk test/perl-framework/Apache-Test + run_svn_export https://svn.apache.org/repos/asf/perl/Apache-Test/trunk HEAD test/perl-framework/Apache-Test 5 fi fi