]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
CI: Reintroduce timeout/retry handling for "svn export" specific to
authorJoe Orton <jorton@apache.org>
Fri, 6 Jun 2025 11:50:43 +0000 (11:50 +0000)
committerJoe Orton <jorton@apache.org>
Fri, 6 Jun 2025 11:50:43 +0000 (11:50 +0000)
Apache::Test handling.

Github: closes #536

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1926174 13f79535-47bb-0310-9956-ffa450edef68

test/travis_before_linux.sh

index 00023f7b1ede304d62de884459bcf6efe2d3423f..9b6267722daca3f0b818e791e6e20242316ba8df 100755 (executable)
@@ -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