21521: Wrap aptly commands in flock
[arvados-dev.git] / jenkins / run_upload_packages.py
index 3a51e408f8aeb5fad78d230b187db549f1509c7e..216b56b14958d10773ec74ad0b0f566b8beceb86 100755 (executable)
@@ -208,6 +208,12 @@ class DebianPackageSuite(DistroPackageSuite):
 set -e
 cd "$1"; shift
 DISTNAME=$1; shift
+# aptly implements its own locking, but its wait strategy as of April 2024 is
+# not patient enough to accommodate multiple simultaneous uploads.
+APTLY_LOCK="${XDG_RUNTIME_DIR:-/tmp}/aptly-upload.lock"
+aptly() {
+  flock --wait=300 "$APTLY_LOCK" aptly "$@"
+}
 for package in "$@"; do
   if aptly repo search "$DISTNAME" "${package%.deb}" >/dev/null 2>&1; then
     echo "Not adding $package, it is already present in repo $DISTNAME"