summaryrefslogtreecommitdiff
path: root/abuild.in
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2024-06-06 01:20:09 -0500
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2024-09-18 17:43:01 -0500
commitbcc4c863122ce07658d0c44fae3875c2c7a5ae97 (patch)
tree2d90e74d05fce5d5ce49c456dacc0596c8ae474c /abuild.in
parent9562f576c22b48f180d562437701f8e5b14f83ff (diff)
downloadabuild-bcc4c863122ce07658d0c44fae3875c2c7a5ae97.tar.gz
abuild-bcc4c863122ce07658d0c44fae3875c2c7a5ae97.tar.bz2
abuild-bcc4c863122ce07658d0c44fae3875c2c7a5ae97.tar.xz
abuild-bcc4c863122ce07658d0c44fae3875c2c7a5ae97.zip
abuild: Implement a checkretry option
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.in13
1 files changed, 13 insertions, 0 deletions
diff --git a/abuild.in b/abuild.in
index 13e9824..932efb2 100644
--- a/abuild.in
+++ b/abuild.in
@@ -1557,6 +1557,9 @@ build_abuildrepo() {
if options_has "checkx11"; then
_check=check_x11
fi
+ if options_has "checkretry"; then
+ _check=check_retry
+ fi
if ! want_check; then
_check=true
fi
@@ -1853,6 +1856,16 @@ check_x11() {
env DISPLAY=:7 dbus-run-session "$abuild_path" $forceroot $color_opt $keep_build check
}
+# wrap check() with retries
+check_retry() {
+ count=${ABUILD_RETRY_COUNT:=5}
+ (cd "$startdir";
+ while test $((count=$(($count-1)))) -ge 0; do
+ msg "Trying check..."
+ check && exit 0;
+ done; exit 1)
+}
+
# build and package in fakeroot
rootpkg() {
cd "$startdir"