Merge branch '8784-dir-listings'
[arvados.git] / build / run-library.sh
index 267b641f62afb9cefea80e34ad79f617760566c7..ae5ad6d49bff34557c68eacebb8976d97ab4b2db 100755 (executable)
@@ -1,4 +1,7 @@
 #!/bin/bash
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
 
 # A library of functions shared by the various scripts in this directory.
 
@@ -7,6 +10,8 @@
 # older packages.
 LICENSE_PACKAGE_TS=20151208015500
 
+RAILS_PACKAGE_ITERATION=8
+
 debug_echo () {
     echo "$@" >"$STDOUT_IF_DEBUG"
 }
@@ -199,11 +204,16 @@ test_package_presence() {
       deb_architecture="amd64"
 
       if [[ "$pkgtype" =~ ^(python|python3)$ ]]; then
-        rpm_architecture="all"
+        rpm_architecture="noarch"
         deb_architecture="all"
       fi
 
-      # These packages have binary components
+      if [[ "$pkgtype" =~ ^(src)$ ]]; then
+        rpm_architecture="noarch"
+        deb_architecture="all"
+      fi
+
+      # These python packages have binary components
       if [[ "$pkgname" =~ (ruamel|ciso|pycrypto|pyyaml) ]]; then
         rpm_architecture="x86_64"
         deb_architecture="amd64"
@@ -219,8 +229,12 @@ test_package_presence() {
       local complete_pkgname="$pkgname-$version-$iteration.$rpm_architecture.rpm"
     fi
 
-    if [[ -e "$complete_pkgname" ]]; then
+    # See if we can skip building the package, only if it already exists in the
+    # processed/ directory. If so, move it back to the packages directory to make
+    # sure it gets picked up by the test and/or upload steps.
+    if [[ -e "processed/$complete_pkgname" ]]; then
       echo "Package $complete_pkgname exists, not rebuilding!"
+      mv processed/$complete_pkgname .
       return 1
     else
       echo "Package $complete_pkgname not found, building"
@@ -437,6 +451,11 @@ fpm_build () {
   FPM_EXIT_CODE=$?
 
   fpm_verify $FPM_EXIT_CODE $FPM_RESULTS
+
+  # if something went wrong and debug is off, print out the fpm command that errored
+  if [[ 0 -ne $? ]] && [[ "$STDOUT_IF_DEBUG" == "/dev/null" ]]; then
+    echo -e "\n${COMMAND_ARR[@]}\n"
+  fi
 }
 
 # verify build results
@@ -452,14 +471,19 @@ fpm_verify () {
 
   if [[ "$FPM_PACKAGE_NAME" == "" ]]; then
     EXITCODE=1
+    echo
     echo "Error: $PACKAGE: Unable to figure out package name from fpm results:"
     echo
     echo $FPM_RESULTS
     echo
+    return 1
   elif [[ "$FPM_RESULTS" =~ "File already exists" ]]; then
     echo "Package $FPM_PACKAGE_NAME exists, not rebuilding"
+    return 0
   elif [[ 0 -ne "$FPM_EXIT_CODE" ]]; then
+    EXITCODE=1
     echo "Error building package for $1:\n $FPM_RESULTS"
+    return 1
   fi
 }