1
0
Fork 0
mirror of https://code.forgejo.org/actions/cascading-pr synced 2025-06-26 13:28:01 +02:00

simplify the retry implementation and tests

This commit is contained in:
Earl Warren 2023-11-01 18:40:23 +01:00
parent 9d138db73c
commit 15dc3ec7a7
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
4 changed files with 29 additions and 18 deletions

View file

@ -28,23 +28,24 @@ function dependencies() {
}
function retry() {
rm -f $TMPDIR/retry.out
rm -f $TMPDIR/retry.{out,attempt,err}
local success=false
for delay in $RETRY_DELAYS ; do
if "$@" |& tee -a $TMPDIR/retry.out > $TMPDIR/retry-attempt.out ; then
if "$@" > $TMPDIR/retry.attempt 2>> $TMPDIR/retry.err ; then
success=true
break
fi
cat $TMPDIR/retry-attempt.out >&2
log waiting $delay "$@"
cat $TMPDIR/retry.{err,attempt} >> $TMPDIR/retry.out
cat $TMPDIR/retry.{err,attempt} >&2
echo waiting $delay "$@" >&2
sleep $delay
done
if $success ; then
cat $TMPDIR/retry-attempt.out
cat $TMPDIR/retry.attempt
return 0
else
log_error retry failed for "$@"
cat $TMPDIR/retry.out
echo retry failed for "$@" >&2
cat $TMPDIR/retry.out >&2
return 1
fi
}