From 77f198433d31d492d86c38359940acd7f5012cf8 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Fri, 28 Aug 2015 17:18:20 -0400 Subject: [PATCH] Script to automatically test python package installation on clean Docker images. --- jenkins/run-test-packages.sh | 10 ++++++ jenkins/test-packages-centos6.sh | 50 +++++++++++++++++++++++++++++ jenkins/test-packages-deb-common.sh | 30 +++++++++++++++++ jenkins/test-packages-debian7.sh | 3 ++ jenkins/test-packages-debian8.sh | 3 ++ jenkins/test-packages-ubuntu1204.sh | 3 ++ jenkins/test-packages-ubuntu1404.sh | 3 ++ 7 files changed, 102 insertions(+) create mode 100755 jenkins/run-test-packages.sh create mode 100755 jenkins/test-packages-centos6.sh create mode 100755 jenkins/test-packages-deb-common.sh create mode 100755 jenkins/test-packages-debian7.sh create mode 100755 jenkins/test-packages-debian8.sh create mode 100755 jenkins/test-packages-ubuntu1204.sh create mode 100755 jenkins/test-packages-ubuntu1404.sh diff --git a/jenkins/run-test-packages.sh b/jenkins/run-test-packages.sh new file mode 100755 index 0000000..c4f5bec --- /dev/null +++ b/jenkins/run-test-packages.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +if test -z "$WORKSPACE" ; then + echo "Must set WORKSPACE" + exit 1 +fi + +for pkg in test-packages-*.sh ; do + $pkg --run-test +done diff --git a/jenkins/test-packages-centos6.sh b/jenkins/test-packages-centos6.sh new file mode 100755 index 0000000..6dd87e9 --- /dev/null +++ b/jenkins/test-packages-centos6.sh @@ -0,0 +1,50 @@ +#!/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 + +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 + +yum install --assumeyes python27-python*.rpm + +mkdir -p /tmp/opts +cd /tmp/opts + +for r in /mnt/python27-python-*x86_64.rpm ; do + rpm2cpio $r | cpio -idm +done + +FAIL=0 + +for so in $(find . -name "*.so") ; do + if ldd $so | grep "not found" ; then + echo "^^^ Missing while scanning $so ^^^" + FAIL=1 + fi +done + +python < Packages.gz + + exec docker run \ + --rm \ + --volume=$WORKSPACE/packages/$2:/mnt \ + --volume=$self:/root/run-test.sh \ + --workdir=/mnt \ + $3 \ + /root/run-test.sh +fi + +echo "deb file:///mnt /" >>/etc/apt/sources.list +apt-get update +apt-get --assume-yes --force-yes install python-arvados-python-client python-arvados-fuse + +python <