From 16f42e85a064d690f05459306f6b1ea0f70c9ab3 Mon Sep 17 00:00:00 2001 From: Daniel Gröber Date: Sun, 26 Nov 2017 19:34:23 +0100 Subject: ci: Add retry loop to 'cabal update' --- scripts/ci/retry.sh | 50 +++++++++++++++++++++++++++++++++++++ scripts/ci/steps/10-dependencies.sh | 2 +- scripts/retry.sh | 50 ------------------------------------- 3 files changed, 51 insertions(+), 51 deletions(-) create mode 100755 scripts/ci/retry.sh delete mode 100755 scripts/retry.sh (limited to 'scripts') diff --git a/scripts/ci/retry.sh b/scripts/ci/retry.sh new file mode 100755 index 0000000..285648e --- /dev/null +++ b/scripts/ci/retry.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +# MIT LICENSE +# +# Copyright (c) 2016 Travis CI GmbH +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +# +# Copied from github.com/travis-ci/travis-build and modified to pass shellcheck. +# Copied from https://github.com/cockroachdb/cockroach/blob/b4b7412d1c899a7488a9839eb4e01a616e4de135/scripts/travis_retry.sh and modified slightly + +retry() { + local result=0 + local count=1 + while [ $count -le 3 ]; do + [ $result -ne 0 ] && { + echo -e "\n${ANSI_RED}The command \"$*\" failed. Retrying, $count of 3.${ANSI_RESET}\n" >&2 + } + "$@" + result=$? + [ $result -eq 0 ] && break + count=$((count + 1)) + sleep 10 + done + + [ $count -gt 3 ] && { + echo -e "\n${ANSI_RED}The command \"$*\" failed 3 times.${ANSI_RESET}\n" >&2 + } + + return $result +} + +retry "$@" diff --git a/scripts/ci/steps/10-dependencies.sh b/scripts/ci/steps/10-dependencies.sh index 290cce2..c718421 100644 --- a/scripts/ci/steps/10-dependencies.sh +++ b/scripts/ci/steps/10-dependencies.sh @@ -1,3 +1,3 @@ -cabal update +"$CI_SCRIPTS_DIR"/retry.sh cabal update cabal --sandbox-config="$sandbox_config" sandbox init --sandbox="$sandbox" cabal --sandbox-config="$sandbox_config" install --only-dependencies diff --git a/scripts/retry.sh b/scripts/retry.sh deleted file mode 100755 index 285648e..0000000 --- a/scripts/retry.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env bash - -# MIT LICENSE -# -# Copyright (c) 2016 Travis CI GmbH -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -# -# -# Copied from github.com/travis-ci/travis-build and modified to pass shellcheck. -# Copied from https://github.com/cockroachdb/cockroach/blob/b4b7412d1c899a7488a9839eb4e01a616e4de135/scripts/travis_retry.sh and modified slightly - -retry() { - local result=0 - local count=1 - while [ $count -le 3 ]; do - [ $result -ne 0 ] && { - echo -e "\n${ANSI_RED}The command \"$*\" failed. Retrying, $count of 3.${ANSI_RESET}\n" >&2 - } - "$@" - result=$? - [ $result -eq 0 ] && break - count=$((count + 1)) - sleep 10 - done - - [ $count -gt 3 ] && { - echo -e "\n${ANSI_RED}The command \"$*\" failed 3 times.${ANSI_RESET}\n" >&2 - } - - return $result -} - -retry "$@" -- cgit v1.2.3