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 \