diff --git a/.github/workflows/retry.sh b/.github/workflows/retry.sh index e478376caa..b3e0cc4de7 100755 --- a/.github/workflows/retry.sh +++ b/.github/workflows/retry.sh @@ -1,4 +1,22 @@ #!/usr/bin/env bash -while ! $@; do "command failed, retrying ..."; sleep 1; done +cmd=$@ +function elog() { + message=$1 + printf "%(%Y/%m/%d %H:%M:%S)T | retry.sh $1\n" +} + +declare -i iteration=0 +declare -i max_iterations=9 +for((iteration=1;iteration<=max_iterations;iteration++)); do + elog "iteration: $iteration/$max_iterations, cmd: $cmd" + if $cmd; then + exit 0 + fi + elog "command failed, retrying ..."; + sleep 1; +done; + +elog "failed doing $max_iterations iterations of command: $cmd" +exit 1