This is an automated email from the ASF dual-hosted git repository.

lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git


The following commit(s) were added to refs/heads/main by this push:
     new 7ec025b  ci: retry Gemfury uploads (#306)
7ec025b is described below

commit 7ec025b92da75966a4630b854c56811c01985bf2
Author: David Li <[email protected]>
AuthorDate: Mon Jan 2 09:18:12 2023 -0500

    ci: retry Gemfury uploads (#306)
    
    Fixes #285.
---
 ci/scripts/java_jar_upload.sh | 29 +++++++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/ci/scripts/java_jar_upload.sh b/ci/scripts/java_jar_upload.sh
index 702b3b3..7ded622 100755
--- a/ci/scripts/java_jar_upload.sh
+++ b/ci/scripts/java_jar_upload.sh
@@ -20,15 +20,34 @@ set -ex
 
 # Usage: java_jar_upload.sh jar1.pom jar2.pom ...
 
-main() {
-    local settings_file=$(mktemp adbc.settingsXXXXXXXX)
-    trap 'rm -f "$settings_file"' ERR EXIT INT TERM
+retry() {
+    local -r retries="${1}"
+    shift
+
+    local attempt=0
+    while ! "$@"; do
+        local last_status="$?"
+        attempt=$((attempt + 1))
+        if [[ "${attempt}" -lt "${retries}" ]]; then
+            local delay=$((2 ** ${attempt}))
+            echo "Attempt ${attempt}/${retries}, waiting ${delay} seconds"
+            sleep "${delay}"
+        else
+            echo "Attempt ${attempt}/${retries}, exiting"
+            return "${last_status}"
+        fi
+    done
+    return 0
+}
 
+main() {
     if [[ -z "${GEMFURY_PUSH_TOKEN}" ]]; then
         echo "GEMFURY_PUSH_TOKEN must be set"
         exit 1
     fi
 
+    local settings_file=$(mktemp adbc.settingsXXXXXXXX)
+    trap 'rm -f "$settings_file"' ERR EXIT INT TERM
     cat <<SETTINGS > "${settings_file}"
 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0";
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
@@ -67,7 +86,9 @@ SETTINGS
             mvnArgs="${mvnArgs} -Djavadoc=${javadoc}"
         fi
 
-        mvn \
+        # apache/arrow-adbc#285: Gemfury appears to be flaky with some
+        # 503s, so retry each upload.
+        retry 3 mvn \
             -Dmaven.install.skip=true \
             -Drat.skip=true \
             -DskipTests \

Reply via email to