22235: differentiated frozen manageable projects
[arvados.git] / build / package-testing / rpm-common-test-packages.sh
1 #!/bin/bash
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: AGPL-3.0
5
6 set -eu
7
8 # Set up
9 DEBUG=${ARVADOS_DEBUG:-0}
10 STDOUT_IF_DEBUG=/dev/null
11 STDERR_IF_DEBUG=/dev/null
12 if [[ "$DEBUG" != "0" ]]; then
13   STDOUT_IF_DEBUG=/dev/stdout
14   STDERR_IF_DEBUG=/dev/stderr
15 fi
16
17 target="$(basename "$0" .sh)"
18 target="${target##*-}"
19
20 microdnf --assumeyes clean all
21 touch /var/lib/rpm/*
22
23 export ARV_PACKAGES_DIR="/arvados/packages/$target"
24
25 rpm -qa | sort > "$ARV_PACKAGES_DIR/$1.before"
26 microdnf --assumeyes install "$1"
27 rpm -qa | sort > "$ARV_PACKAGES_DIR/$1.after"
28 diff "$ARV_PACKAGES_DIR/$1".{before,after} >"$ARV_PACKAGES_DIR/$1.diff" || true
29
30 mkdir -p /tmp/opts
31 cd /tmp/opts
32
33 # Install other packages alongside to test for build id conflicts.
34 # This line can be removed after we have test-provision-rocky8, #21426.
35 microdnf --assumeyes install arvados-client arvados-server python3-arvados-python-client
36
37 rpm2cpio $(ls -t "$ARV_PACKAGES_DIR/$1"-*.rpm | head -n1) | cpio -idm 2>/dev/null
38
39 if [[ "$DEBUG" != "0" ]]; then
40   find -name '*.so' | while read so; do
41       echo -e "\n== Packages dependencies for $so =="
42       ldd "$so" \
43           | awk '($3 ~ /^\//){print $3}' | sort -u | xargs rpm -qf | sort -u
44   done
45 fi
46
47 exec /jenkins/package-testing/common-test-packages.sh "$1"