From a19a85b6bec2b23d475e9f8c3498f6ca78636542 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Sat, 9 Jul 2016 14:52:03 +0200 Subject: Copy pbuilder sample hooks from doc dir of pbuilder package. --- pbuilder/hooks/B20autopkgtest | 94 +++++++++++++++++++++++++++++++++++++++++++ pbuilder/hooks/C10shell | 8 ++++ 2 files changed, 102 insertions(+) create mode 100755 pbuilder/hooks/B20autopkgtest create mode 100755 pbuilder/hooks/C10shell (limited to 'pbuilder') diff --git a/pbuilder/hooks/B20autopkgtest b/pbuilder/hooks/B20autopkgtest new file mode 100755 index 0000000..b8d4f84 --- /dev/null +++ b/pbuilder/hooks/B20autopkgtest @@ -0,0 +1,94 @@ +#!/bin/sh +# Copyright © 2012 Christoph Berg +# © 2013 Michael Prokop +# © 2015 Mattia Rizzolo +# +# This file is part of pbuilder -- personal Debian package builder +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +BUILDDIR="${BUILDDIR:-/tmp/buildd}" + +if [ "${ADT:-}" = "skip" ]; then + echo "Skipping autopkgtests as requested (ADT is set to 'skip')" + exit 0 +fi + +if [ "${ADT:-}" = "external" ]; then + echo "Skipping internal autopkgtests as external testing was requested via ADT variable" + exit 0 +fi + +set -ex + +cd "$BUILDDIR"/*/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 + +if [ -n "${ADT_OPTIONS:-}" ] ; then + echo "*** Using provided ADT_OPTIONS $ADT_OPTIONS ***" +fi + +# try to launch adt-run in a new PID namespace so several testsuites can run +# in parallel, newpid exists in jessie and newer only though +unset newpid_name +if ! apt-cache policy newpid | grep -q 'newpid:' ; then + echo "The newpid package doesn't seem to be available, not considering for installation" +else + echo "The newpid package seems to be available, considering for installation" + newpid_name='newpid' +fi + +# runner/adt-run uses apt-utils's apt-ftparchive and +# pbuilder's pbuilder-satisfydepends-classic +apt-get install -y autopkgtest apt-utils pbuilder $newpid_name + +# since autopkgtest 3.16 the --tmp-dir option is gone, make sure +# we've --output-dir available though before using it +if adt-run --help | grep -q -- --output-dir 2>/dev/null ; then + OUTPUT_OPTION='--output-dir' +else + OUTPUT_OPTION='--tmp-dir' +fi + +mkdir -p "$BUILDDIR/autopkgtest.out" + +$newpid_name adt-run \ + ${OUTPUT_OPTION} "$BUILDDIR/autopkgtest.out" \ + --summary "$BUILDDIR/autopkgtest.summary" \ + "$BUILDDIR"/*.deb \ + --built-tree "${PWD}" \ + ${ADT_OPTIONS:-} --- adt-virt-null || EXIT=$? + +# collect autopkgtest output in a single file so pbuilder automatically copies it +tar -caf "$BUILDDIR/autopkgtest.tar.gz" "$BUILDDIR/autopkgtest.out" + +case ${EXIT:-0} in + 2|4|6|8) # let adtsummary_tap report the failure + exit 0 + ;; + *) + exit ${EXIT:-0} + ;; +esac diff --git a/pbuilder/hooks/C10shell b/pbuilder/hooks/C10shell new file mode 100755 index 0000000..6fa0cb6 --- /dev/null +++ b/pbuilder/hooks/C10shell @@ -0,0 +1,8 @@ +#!/bin/bash +# example file to be used with --hookdir +# +# invoke shell if build fails. +BUILDDIR="${BUILDDIR:-/tmp/buildd}" +apt-get install -y "${APTGETOPT[@]}" vim less +cd "$BUILDDIR"/*/debian/.. +/bin/bash < /dev/tty > /dev/tty 2> /dev/tty -- cgit v1.2.3