diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2024-06-06 01:20:09 -0500 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2024-06-06 21:42:58 -0500 |
commit | 16f63fb0e82e9028ba1b9b868c7743e31f3d3f32 (patch) | |
tree | f6c94f2aad7dc57231ec45ab00a1087325ef0bfa /abuild.in | |
parent | 63674cd048f2763638d155cf515be08cc41e99f9 (diff) | |
download | abuild-awilfox/feature-15.tar.gz abuild-awilfox/feature-15.tar.bz2 abuild-awilfox/feature-15.tar.xz abuild-awilfox/feature-15.zip |
abuild: Implement a checkretry optionawilfox/feature-15
This allows a test suite to be retried automatically in case of flaky or
unreliable tests upstream. The default retry count is 5, but can be set
in abuild.conf with the variable `$ABUILD_RETRY_COUNT`.
Closes: #15
Diffstat (limited to 'abuild.in')
-rw-r--r-- | abuild.in | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -1533,6 +1533,9 @@ build_abuildrepo() { if options_has "checkroot"; then _check=check_fakeroot fi + if options_has "checkretry"; then + _check=check_retry + fi if ! want_check; then _check=true fi @@ -1787,6 +1790,19 @@ check_fakeroot() { do_fakeroot "$abuild_path" $forceroot $color_opt $keep_build check } +# wrap check() with retries +check_retry() { + count=${ABUILD_RETRY_COUNT:=5} + (cd "$startdir"; + try=1 + while [ $try -le $count ]; do + msg "Test attempt $try of $count..." + check && exit 0 + try=$(($try+1)) + [ $try -gt $count ] && exit 1 + done) +} + # build and package in fakeroot rootpkg() { cd "$startdir" |