Merge branch '21906-api-gems-dir'
[arvados.git] / build / package-testing / common-test-rails-server-package.sh
index e04556bb6b50b2312129726cbddcd354b4fb7685..df98078de3e4aa4ec254b6a371ec7dcb7e85b0eb 100755 (executable)
@@ -12,40 +12,36 @@ else
     PACKAGE_NAME=$1; shift
 fi
 
-if [ "$PACKAGE_NAME" = "arvados-workbench" ]; then
-  mkdir -p /etc/arvados
-  cat <<'EOF' >/etc/arvados/config.yml
----
-Clusters:
-  xxxxx:
-    Services:
-      Workbench1:
-        ExternalURL: "https://workbench.xxxxx.example.com"
-      WebDAV:
-        ExternalURL: https://*.collections.xxxxx.example.com/
-      WebDAVDownload:
-        ExternalURL: https://download.xxxxx.example.com
-    ManagementToken: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-    SystemRootToken: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-    Collections:
-      BlobSigningKey: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-    Workbench:
-      SecretKeyBase: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-    Users:
-      AutoAdminFirstUser: true
-EOF
-fi
+API_GEMS_LS="$(mktemp --tmpdir api-gems-XXXXXX.list)"
+trap 'rm -f "$API_GEMS_LS"' EXIT INT TERM QUIT
+
+cd "/var/www/${PACKAGE_NAME%-server}"
+
+check_gem_dirs() {
+    local when="$1"; shift
+    env -C shared/vendor_bundle/ruby ls -1 >"$API_GEMS_LS"
+    local ls_count="$(wc -l <"$API_GEMS_LS")"
+    if [ "$ls_count" = 1 ]; then
+        return 0
+    fi
+    echo "Package $PACKAGE_NAME FAILED: $ls_count gem directories created after $when:" >&2
+    case "${ARVADOS_DEBUG:-0}" in
+        0) cat "$API_GEMS_LS" >&2 ;;
+        *) env -C shared/vendor_bundle/ruby find -maxdepth 3 -type d -ls >&2 ;;
+    esac
+    return 11
+}
 
-cd "/var/www/${PACKAGE_NAME%-server}/current"
+check_gem_dirs "initial install"
 
 case "$TARGET" in
     debian*|ubuntu*)
         apt-get install -y nginx
         dpkg-reconfigure "$PACKAGE_NAME"
         ;;
-    centos*)
-        yum install --assumeyes httpd
-        yum reinstall --assumeyes "$PACKAGE_NAME"
+    rocky*)
+        microdnf --assumeyes install httpd
+        microdnf --assumeyes reinstall "$PACKAGE_NAME"
         ;;
     *)
         echo -e "$0: Unknown target '$TARGET'.\n" >&2
@@ -53,4 +49,5 @@ case "$TARGET" in
         ;;
 esac
 
-/usr/local/rvm/bin/rvm-exec default bundle list >"$ARV_PACKAGES_DIR/$PACKAGE_NAME.gems"
+check_gem_dirs "package reinstall"
+env -C current bundle list >"$ARV_PACKAGES_DIR/$PACKAGE_NAME.gems"