8345: Use a separate vendor/cache for each OS target. See dev.arvados.org/issues...
authorTom Clegg <tom@curoverse.com>
Wed, 2 Mar 2016 15:34:58 +0000 (10:34 -0500)
committerTom Clegg <tom@curoverse.com>
Wed, 2 Mar 2016 15:34:58 +0000 (10:34 -0500)
jenkins/run-build-packages-one-target.sh

index 95977030fcec0ed01aad02a965c98aa0cac6151a..34d8c0871e72fd98d1718f688068d400ed6e8bd9 100755 (executable)
@@ -150,13 +150,27 @@ FINAL_EXITCODE=0
 
 package_fails=""
 
+mkdir -p "$WORKSPACE/apps/workbench/vendor/cache-$TARGET"
+mkdir -p "$WORKSPACE/services/api/vendor/cache-$TARGET"
+
+docker_volume_args=(
+    -v "$JENKINS_DIR:/jenkins"
+    -v "$WORKSPACE:/arvados"
+    -v /arvados/services/api/vendor/bundle
+    -v /arvados/apps/workbench/vendor/bundle
+    -v "$WORKSPACE/services/api/vendor/cache-$TARGET:/arvados/services/api/vendor/cache"
+    -v "$WORKSPACE/apps/workbench/vendor/cache-$TARGET:/arvados/apps/workbench/vendor/cache"
+)
+
 if [[ -n "$test_packages" ]]; then
     for p in $packages ; do
-        if docker run --rm -v "$JENKINS_DIR:/jenkins" -v "$WORKSPACE:/arvados" \
-               --env ARVADOS_DEBUG=1 \
-               --env "TARGET=$TARGET" \
-               --env "WORKSPACE=/arvados" \
-               "$IMAGE" $COMMAND $p ; then
+        if docker run --rm \
+            "${docker_volume_args[@]}" \
+            --env ARVADOS_DEBUG=1 \
+            --env "TARGET=$TARGET" \
+            --env "WORKSPACE=/arvados" \
+            "$IMAGE" $COMMAND $p
+        then
             true
         else
             FINAL_EXITCODE=$?
@@ -165,8 +179,11 @@ if [[ -n "$test_packages" ]]; then
         fi
     done
 else
-    if docker run --rm -v "$JENKINS_DIR:/jenkins" -v "$WORKSPACE:/arvados" \
-           --env ARVADOS_DEBUG=1 "$IMAGE" $COMMAND ; then
+    if docker run --rm \
+        "${docker_volume_args[@]}" \
+        --env ARVADOS_DEBUG=1 \
+        "$IMAGE" $COMMAND
+    then
         echo
         echo "Build packages for $TARGET succeeded." >&2
     else