From 5d8ac513507cb1e63a20f6606d76d35e79da1e23 Mon Sep 17 00:00:00 2001
From: Tamara Vazquez Schroeder <tamara.vazquez.schroeder@cern.ch>
Date: Mon, 30 Oct 2017 19:20:32 +0000
Subject: [PATCH] Merge branch 'checkout-retry-ATLINFR-1817-21.X' into '21.0'

Retry mechanism in checkout_atlasexternals.sh and checkout_Gaudi.sh (ATLINFR-1817) -> 21.X branches

See merge request !5537

Former-commit-id: f7cb70fe183cecc09c4b76457b8be0c25cff0ebc
---
 Build/AtlasBuildScripts/checkout_Gaudi.sh     | 22 ++++++++++++++++---
 .../checkout_atlasexternals.sh                | 22 ++++++++++++++++---
 .../G4Sim/FADS/FadsKinematics/cmt/Makefile    |  0
 3 files changed, 38 insertions(+), 6 deletions(-)
 mode change 100644 => 100755 Simulation/G4Sim/FADS/FadsKinematics/cmt/Makefile

diff --git a/Build/AtlasBuildScripts/checkout_Gaudi.sh b/Build/AtlasBuildScripts/checkout_Gaudi.sh
index a536cf4c3b6..ec642ae9103 100755
--- a/Build/AtlasBuildScripts/checkout_Gaudi.sh
+++ b/Build/AtlasBuildScripts/checkout_Gaudi.sh
@@ -20,6 +20,22 @@ usage() {
     echo "    -e url: Optional source URL to use for the checkout"
 }
 
+_max_retry_=5
+
+_retry_ () {
+    local cmd="$*"
+    local n=0
+    while ! $cmd ; do
+        if test $n -eq $_max_retry_ ; then
+            echo "ERROR: $cmd FAILED $_max_retry_ times. EXIT(1)" >&2
+            exit 1
+        fi
+        echo "WARNING: $cmd FAILED, retry in 30 sec ... "
+        sleep 30s
+        n=`expr $n + 1`
+    done
+}
+
 # Parse the command line arguments:
 TAGBRANCH=""
 SOURCEDIR=""
@@ -65,12 +81,12 @@ echo "   from: $GAUDIURL"
 
 if [ ! -d "${SOURCEDIR}" ]; then
     # Clone the repository:
-    git clone ${GAUDIURL} ${SOURCEDIR}
+    _retry_ git clone ${GAUDIURL} ${SOURCEDIR}
 else
     echo "${SOURCEDIR} already exists -> assume previous checkout"
 fi
 
 # Get the appropriate version of it:
 cd ${SOURCEDIR}
-git fetch --prune origin
-git checkout -f ${TAGBRANCH}
+_retry_ git fetch --prune origin
+_retry_ git checkout -f ${TAGBRANCH}
diff --git a/Build/AtlasBuildScripts/checkout_atlasexternals.sh b/Build/AtlasBuildScripts/checkout_atlasexternals.sh
index 792cec61510..2fa694b02b7 100755
--- a/Build/AtlasBuildScripts/checkout_atlasexternals.sh
+++ b/Build/AtlasBuildScripts/checkout_atlasexternals.sh
@@ -20,6 +20,22 @@ usage() {
     echo "    -e url: Optional source URL to use for the checkout"
 }
 
+_max_retry_=5
+
+_retry_ () {
+    local cmd="$*"
+    local n=0
+    while ! $cmd ; do
+        if test $n -eq $_max_retry_ ; then
+            echo "ERROR: $cmd FAILED $_max_retry_ times. EXIT(1)" >&2
+            exit 1
+        fi
+        echo "WARNING: $cmd FAILED, retry in 30 sec ... "
+        sleep 30s
+        n=`expr $n + 1`
+    done
+}
+
 # Parse the command line arguments:
 TAGBRANCH=""
 SOURCEDIR=""
@@ -65,12 +81,12 @@ echo "   from: $EXTERNALSURL"
 
 if [ ! -d "${SOURCEDIR}" ]; then
     # Clone the repository:
-    git clone ${EXTERNALSURL} ${SOURCEDIR}
+    _retry_ git clone ${EXTERNALSURL} ${SOURCEDIR}
 else
     echo "${SOURCEDIR} already exists -> assume previous checkout"
 fi
 
 # Get the appropriate version of it:
 cd ${SOURCEDIR}
-git fetch --prune origin
-git checkout -f ${TAGBRANCH}
+_retry_ git fetch --prune origin
+_retry_ git checkout -f ${TAGBRANCH}
diff --git a/Simulation/G4Sim/FADS/FadsKinematics/cmt/Makefile b/Simulation/G4Sim/FADS/FadsKinematics/cmt/Makefile
old mode 100644
new mode 100755
-- 
GitLab