modified version of jenkins debian glue (https://github.com/mika/jenkins-debian-glue) for devuan
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.1 KiB

support autopkgtest Implemented as follows: * build-and-provide-package uses the new pbuilder-hookdir directory by default. The pbuilder-hookdir script B20autopkgtest runs the actual tests using autopkgtest iff debian/tests/control is present in the Debian package, otherwise skipping the test execution so behaviour of build-and-provide-package is the same as before. The hook directory defaults to /usr/share/jenkins-debian-glue/pbuilder-hookdir/ and can be configured by the $PBUILDER_HOOKDIR setting. To skip any autopkgtest output handling the $SKIP_AUTOPKGTEST_RESULTS configuration can be set. * build-and-provide-package: copies autopkgtest output into directory 'adt' for later processing via adtsummary_tap * adtsummary_tap: this script generates a TAP report of the autopkgtest output, usage inside a Jenkins job as shell executer step like: mkdir -p report adt touch adt/summary # do not fail if no autopkgtest run took place adtsummary_tap adt/summary > report/autopkgtest.tap and using 'report/*.tap' for Post-build action "Publish TAP Results". It's recommended to use a recent version of autopkgtest. The one provided by Christoph Berg <myon@debian.org> at http://apt.postgresql.org/pub/repos/apt/pool/main/a/autopkgtest/ (autopkgtest_2.2.3.pgdg+1 at the time of this commit) is known to work fine and also includes a bugfix for: | TypeError: coercing to Unicode: need string or buffer, instance found which is reported as http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=696625 Please note that autopkgtest isn't required on the system providing cowbuilder but instead *inside* the cowbuilder environment. Thanks to Christoph Berg <myon@debian.org> for his initial work on autopkgtest support in jenkins-debian-glue and his permission to integrate it in the mainline project.
10 years ago
#!/bin/sh
# Copyright 2013 Michael Prokop <mika@debian.org>
# Copyright 2012 Christoph Berg <myon@debian.org>
# Licensed under the terms of the MIT License.
set -ex
cd /tmp/buildd/*/debian/..
if [ ! -f debian/tests/control ]; then
echo "Package does not have autopkgtest support, debian/tests/control is missing"
exit 0
fi
if [ ! -f debian/files ]; then
echo "Package source is not built, debian/files is missing" >&2
exit 1
fi
set -- /tmp/adt-*/
TMPADT="$1"
if [ ! -d "$TMPADT" ]; then
echo "Didn't find any /tmp/adt-*/ directory. It should have been created before invoking cowbuilder." >&2
ls -la /tmp
exit 1
fi
# runner/adt-run uses apt-utils's apt-ftparchive and
# pbuilder's pbuilder-satisfydepends-classic
apt-get install -y autopkgtest apt-utils pbuilder
mkdir -p "$TMPADT/out"
binaries=$(awk '/\.deb / { print "--binary ../" $1 }' debian/files)
adt-run --tmp-dir $TMPADT/out --summary $TMPADT/summary \
$binaries --built-tree $PWD --- adt-virt-null || EXIT=$?
# 4 means some test failed, exit 0 here and let adtsummary2junit report the failure
[ ${EXIT:-0} = 4 ] && exit 0
exit ${EXIT:-0}