From 610a776a74aba43c373eb5ce441ce9f67f6d2558 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Tue, 3 Jul 2018 13:23:19 +0000 Subject: [PATCH] ci: robustify network-related operations Reduce false positives by wrapping network-related operations into a loop. * ci/install-dependencies.sh (retry_if_failed): New function. Use it to invoke apt-get update, apt-get install, git clone, add-apt-repository, and pip install. --- ci/install-dependencies.sh | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh index 1c5d5c91..f510772c 100755 --- a/ci/install-dependencies.sh +++ b/ci/install-dependencies.sh @@ -3,14 +3,23 @@ type sudo >/dev/null 2>&1 && sudo=sudo || sudo= common_packages='autoconf automake faketime file gawk gcc-multilib git gzip libbluetooth-dev make xz-utils' +retry_if_failed() +{ + for i in `seq 0 99`; do + "$@" && i= && break || sleep 1 + done + [ -z "$i" ] +} + updated= apt_get_install() { [ -n "$updated" ] || { - $sudo apt-get -qq update + retry_if_failed $sudo apt-get -qq update updated=1 } - $sudo apt-get -qq --no-install-suggests --no-install-recommends \ + retry_if_failed $sudo \ + apt-get -qq --no-install-suggests --no-install-recommends \ install -y "$@" } @@ -36,7 +45,8 @@ clone_repo() ;; esac - git clone --depth=1 ${branch:+--branch $branch} "$src" "$dst" + retry_if_failed \ + git clone --depth=1 ${branch:+--branch $branch} "$src" "$dst" } case "$KHEADERS" in @@ -57,7 +67,8 @@ case "$CC" in apt_get_install $common_packages ;; gcc-*) - $sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test + retry_if_failed \ + $sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test apt_get_install $common_packages "$CC"-multilib ;; clang*) @@ -103,7 +114,8 @@ esac case "${CHECK-}" in coverage) apt_get_install lcov - pip install --user codecov + retry_if_failed \ + pip install --user codecov ;; valgrind) apt_get_install valgrind -- 2.40.0