]> granicus.if.org Git - graphviz/commitdiff
CI: retry macOS libANN installation up to 2× on failure
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 16 Apr 2022 15:39:32 +0000 (08:39 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 17 Apr 2022 16:05:33 +0000 (09:05 -0700)
libANN availability seems erratic, with Macports sometimes reporting:

  Error: Port libANN not found

only for a retry of the job to succeed. This change introduces an auto-retry
loop on libANN’s installation, hoping this will ameliorate the issue.

ci/macos-install-build-dependencies.sh
ci/macos-install-runtime-dependencies.sh

index 91d5620d3df217c2801e89bd9bb1c834de106eb3..b6e4bbb8b59d406cc7b25a54547e81ee2f0e2c2d 100644 (file)
@@ -54,5 +54,20 @@ curl --retry 3 --location --no-progress-meter -O \
 sudo installer -package MacPorts-2.7.2-12-Monterey.pkg -target /
 export PATH=/opt/local/bin:${PATH}
 
+# `port install` with retry because packages sometimes transiently 404
+function port_install {
+  for i in 1 2 3; do
+    set +e
+    sudo port install "$@"
+    RET=$?
+    set -e
+    if [ ${RET} -eq 0 ]; then
+      return 0
+    fi
+    sleep $((10 * 2 ** (${i} - 1))) # exponential back off
+  done
+  return -1
+}
+
 # lib/mingle dependency
-sudo port install libANN
+port_install libANN
index 0dc687f77310583d25af4453bfeb689e5999afb9..c6632f1693655703f92d01d27539de2c2eec7f56 100644 (file)
@@ -36,7 +36,22 @@ curl --retry 3 --location --no-progress-meter -O \
 sudo installer -package MacPorts-2.7.2-12-Monterey.pkg -target /
 export PATH=/opt/local/bin:${PATH}
 
+# `port install` with retry because packages sometimes transiently 404
+function port_install {
+  for i in 1 2 3; do
+    set +e
+    sudo port install "$@"
+    RET=$?
+    set -e
+    if [ ${RET} -eq 0 ]; then
+      return 0
+    fi
+    sleep $((10 * 2 ** (${i} - 1))) # exponential back off
+  done
+  return -1
+}
+
 # lib/mingle dependency
-sudo port install libANN
+port_install libANN
 
 python3 -m pip install --requirement requirements.txt