Kokoro: Retry gclient sync Network IO appears to flake. Try up to 5 times before giving up. Change-Id: I1c58e2b603495835d2410a1256aa70c0fe10ee98 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/49340 Kokoro: Kokoro <noreply+kokoro@google.com> Auto-Submit: Ben Clayton <bclayton@google.com> Reviewed-by: Antonio Maiorano <amaiorano@google.com> Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/kokoro/linux/docker.sh b/kokoro/linux/docker.sh index 3796c9b..6a8358c 100755 --- a/kokoro/linux/docker.sh +++ b/kokoro/linux/docker.sh
@@ -38,6 +38,21 @@ echo "" task_begin $@ } +function with_retry { + local MAX_ATTEMPTS=5 + local RETRY_DELAY_SECS=5 + local ATTEMPT=1 + while true; do + "$@" && break + if [[ $ATTEMPT -ge $MAX_ATTEMPTS ]]; then + echo "The command has failed after $ATTEMPT attempts." + exit $? + fi + ((ATTEMPT++)) + echo "'$@' failed. Attempt ($ATTEMPT/$MAX_ATTEMPTS). Retrying..." + sleep $RETRY_DELAY_SECS; + done +} ORIGINAL_SRC_DIR="$(pwd)" @@ -55,7 +70,7 @@ status "Fetching dependencies" cp standalone.gclient .gclient -gclient sync +with_retry gclient sync status "Configuring build system" if [ "$BUILD_SYSTEM" == "cmake" ]; then