From ff18f380d50ef5c0a0e948804a2e2f1e7c3d616c Mon Sep 17 00:00:00 2001
From: Chris Rebert <code@rebertia.com>
Date: Thu, 14 Aug 2014 17:59:55 -0700
Subject: [PATCH] Add retries to uncached-npm-install.sh

Pull requests are frequently failing on Travis due to npm flakiness
(I think) travis_retry isn't available in indirect subshells like this
---
 test-infra/uncached-npm-install.sh | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/test-infra/uncached-npm-install.sh b/test-infra/uncached-npm-install.sh
index 7c728aa645..a2d41445d8 100755
--- a/test-infra/uncached-npm-install.sh
+++ b/test-infra/uncached-npm-install.sh
@@ -2,5 +2,14 @@
 set -e
 cd ..  # /bootstrap/
 cp test-infra/npm-shrinkwrap.json npm-shrinkwrap.json
-npm install
+# npm is flaky, so try multiple times
+MAXTRIES=3
+TRIES=1
+while ! npm install; do
+    if [ $TRIES -ge $MAXTRIES ]; then
+        exit 1
+    fi
+    TRIES=$(($TRIES + 1))
+    echo "Retrying npm install (Try $TRIES of $MAXTRIES)..."
+done
 rm npm-shrinkwrap.json
-- 
GitLab