diff --git a/.semaphoreci/setup.sh b/.semaphoreci/setup.sh index 56bb0169d..e8c6e1e2e 100755 --- a/.semaphoreci/setup.sh +++ b/.semaphoreci/setup.sh @@ -8,4 +8,4 @@ docker version pip install --user -r requirements.txt make pull-images -make validate +ci_retry make validate diff --git a/.semaphoreci/tests.sh b/.semaphoreci/tests.sh index 15bb0fa6b..2a586ccf6 100755 --- a/.semaphoreci/tests.sh +++ b/.semaphoreci/tests.sh @@ -1,5 +1,6 @@ #!/usr/bin/env bash set -e -make test-unit && make test-integration +make test-unit +ci_retry make test-integration make -j${N_MAKE_JOBS} crossbinary-default-parallel diff --git a/.semaphoreci/vars b/.semaphoreci/vars index a17eabb76..5d2eb94ed 100644 --- a/.semaphoreci/vars +++ b/.semaphoreci/vars @@ -17,3 +17,25 @@ fi export CODENAME=raclette export N_MAKE_JOBS=2 + + +function ci_retry { + + local NRETRY=3 + local NSLEEP=5 + local n=0 + + until [ $n -ge $NRETRY ] + do + "$@" && break + n=$[$n+1] + echo "$@ failed, attempt ${n}/${NRETRY}" + sleep $NSLEEP + done + + [ $n -lt $NRETRY ] + +} + +export -f ci_retry +