Do not blow up when another puppet process is already running during deploy.
[arvados-dev.git] / jenkins / run-docker-tests.sh
index 8fbf562c67421df8791fe810c094b8b93053eac6..0b5148e39d324727b786423b22b40e61962f2e6b 100755 (executable)
@@ -9,9 +9,14 @@ title () {
 }
 
 docker_push () {
-  docker push $*
-
-  ECODE=$?
+  # Sometimes docker push fails; retry it a few times if necessary.
+  for i in `seq 1 5`; do
+    $DOCKER push $*
+    ECODE=$?
+    if [[ "$ECODE" == "0" ]]; then
+      break
+    fi
+  done
 
   if [[ "$ECODE" != "0" ]]; then
     title "!!!!!! docker push $* failed !!!!!!"
@@ -19,8 +24,28 @@ docker_push () {
   fi
 }
 
+# Sanity check
+if ! [[ -n "$WORKSPACE" ]]; then
+  echo >&2
+  echo >&2 "Error: WORKSPACE environment variable not set"
+  echo >&2
+  exit 1
+fi
+
 echo $WORKSPACE
 
+# find the docker binary
+DOCKER=`which docker.io`
+
+if [[ "$DOCKER" == "" ]]; then
+  DOCKER=`which docker`
+fi
+
+if [[ "$DOCKER" == "" ]]; then
+  title "Error: you need to have docker installed. Could not find the docker executable."
+  exit 1
+fi
+
 # DOCKER
 title "Starting docker build"