RN: Retry `buck Fetch` in CircleCI
Summary: Currently, various CircleCI jobs intermittently fail when trying to fetch dependencies via Maven. This adds a few retries before failing the CircleCI job to reduce noise from intermittent network fetch failures. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D28153008 fbshipit-source-id: ac944882ff0495f568973a709d6d61ef7b51b318
This commit is contained in:
Родитель
6d04a46f74
Коммит
13c650b8db
|
@ -6,8 +6,44 @@
|
|||
|
||||
set -ex
|
||||
|
||||
buck fetch ReactAndroid/src/test/java/com/facebook/react/modules
|
||||
buck fetch ReactAndroid/src/main/java/com/facebook/react
|
||||
buck fetch ReactAndroid/src/main/java/com/facebook/react/shell
|
||||
buck fetch ReactAndroid/src/test/...
|
||||
buck fetch ReactAndroid/src/androidTest/...
|
||||
# Source: https://gist.github.com/sj26/88e1c6584397bb7c13bd11108a579746
|
||||
# Modified to 1) address lint errors and 2) output to stderr.
|
||||
#
|
||||
# Retry a command up to a specific numer of times until it exits successfully,
|
||||
# with exponential back off.
|
||||
#
|
||||
# $ retry 5 echo Hello
|
||||
# Hello
|
||||
#
|
||||
# $ retry 5 false
|
||||
# Retry 1/5 exited 1, retrying in 1 seconds...
|
||||
# Retry 2/5 exited 1, retrying in 2 seconds...
|
||||
# Retry 3/5 exited 1, retrying in 4 seconds...
|
||||
# Retry 4/5 exited 1, retrying in 8 seconds...
|
||||
# Retry 5/5 exited 1, no more retries left.
|
||||
#
|
||||
function retry {
|
||||
local retries=$1
|
||||
shift
|
||||
|
||||
local count=0
|
||||
until "$@"; do
|
||||
exit=$?
|
||||
wait=$((2 ** count))
|
||||
count=$((count + 1))
|
||||
if [ $count -lt "$retries" ]; then
|
||||
echo "Retry $count/$retries exited $exit, retrying in $wait seconds..." >&2
|
||||
sleep $wait
|
||||
else
|
||||
echo "Retry $count/$retries exited $exit, no more retries left." >&2
|
||||
return $exit
|
||||
fi
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
retry 3 buck fetch ReactAndroid/src/test/java/com/facebook/react/modules
|
||||
retry 3 buck fetch ReactAndroid/src/main/java/com/facebook/react
|
||||
retry 3 buck fetch ReactAndroid/src/main/java/com/facebook/react/shell
|
||||
retry 3 buck fetch ReactAndroid/src/test/...
|
||||
retry 3 buck fetch ReactAndroid/src/androidTest/...
|
||||
|
|
Загрузка…
Ссылка в новой задаче