8080: Successfully tests all packages. Produces before/after/diff lists for each...
[arvados.git] / jenkins / test-packages-centos6.sh
index 6dd87e90af0d49b929f5cec660b05510df68f97f..9241291ce7025e7c48de4859d485bc4e0ee9f839 100755 (executable)
@@ -1,50 +1,42 @@
-#!/bin/sh
-
-if test "$1" = --run-test ; then
-
-    if test -z "$WORKSPACE" ; then
-        echo "Must set WORKSPACE"
-        exit 1
-    fi
-
-    exec docker run \
-         --rm \
-         --volume=$WORKSPACE/packages/centos6:/mnt \
-         --volume=$(readlink -f $0):/root/run-test.sh \
-         --workdir=/mnt \
-         centos:6 \
-         /root/run-test.sh --install-scl
-fi
+#!/bin/bash
 
-if test "$1" = --install-scl ; then
-    yum install --assumeyes scl-utils
-    curl -L -O https://www.softwarecollections.org/en/scls/rhscl/python27/epel-6-x86_64/download/rhscl-python27-epel-6-x86_64.noarch.rpm
-    yum install --assumeyes rhscl-python27-epel-6-x86_64.noarch.rpm
-    yum install --assumeyes python27
-    exec scl enable python27 $0
-fi
+set -eu
 
-yum install --assumeyes python27-python*.rpm
+yum -q clean all
+touch /var/lib/rpm/*
 
-mkdir -p /tmp/opts
-cd /tmp/opts
+rpm -qa | sort > /arvados/packages/centos6/$1.before
+
+yum install --assumeyes $1
+
+rpm -qa | sort > /arvados/packages/centos6/$1.after
 
-for r in /mnt/python27-python-*x86_64.rpm ; do
-    rpm2cpio $r | cpio -idm
-done
+set +e
+diff /arvados/packages/centos6/$1.before /arvados/packages/centos6/$1.after > /arvados/packages/centos6/$1.diff
+set -e
 
-FAIL=0
+SCL=""
+if scl enable python27 true 2>/dev/null ; then
+    SCL="scl enable python27"
+fi
+
+mkdir -p /tmp/opts
+cd /tmp/opts
 
-for so in $(find . -name "*.so") ; do
-    if ldd $so | grep "not found" ; then
-        echo "^^^ Missing while scanning $so ^^^"
-        FAIL=1
-    fi
-done
+rpm2cpio /arvados/packages/centos6/$1-*.rpm | cpio -idm 2>/dev/null
 
-python <<EOF
-import arvados
-import arvados_fuse
-EOF
+shared=$(find -name '*.so')
+if test -n "$shared" ; then
+    for so in $shared ; do
+        echo
+        echo "== Packages dependencies for $so =="
+        $SCL ldd "$so" \
+            | awk '($3 ~ /^\//){print $3}' | sort -u | xargs rpm -qf | sort -u
+    done
+fi
 
-exit $FAIL
+if test -n "$SCL" ; then
+    exec $SCL "/jenkins/common-test-packages.sh $1"
+else
+    exec /jenkins/common-test-packages.sh $1
+fi