debian/tests/skeleton-packaging
branch3.26
changeset 12690 d1b5fd6129bd
child 12709 280c9db41038
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/tests/skeleton-packaging	Wed Jul 10 14:58:41 2019 +0200
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+set -e
+set -x
+
+if [ -z "$AUTOPKGTEST_TMP" ]; then
+	echo "Not running as part as autopkgtest" >&2
+	exit 250
+fi
+
+# Switch to unprivileged user if needed
+if [ "$(id -u)" = 0 ]; then
+	apt-get install -q -y sudo
+	echo 'Defaults !fqdn' > /etc/sudoers.d/fqdn
+	echo 'nobody ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/nobody
+	chown nobody:nogroup "$AUTOPKGTEST_TMP"
+	exec su nobody -s /bin/sh -c "$0"
+fi
+
+cd "$AUTOPKGTEST_TMP"
+
+# Create a cube
+PACKAGE="cubicweb-mytest"
+cubicweb-ctl newcube -s 'Just a test cube' ${PACKAGE#cubicweb-}
+cd "$PACKAGE"
+
+UPSTREAM_VERSION=$(python setup.py --version)
+DEBIAN_VERSION=$(dpkg-parsechangelog -S Version)
+
+# Create source tarball
+python setup.py sdist
+mv "dist/${PACKAGE}-${UPSTREAM_VERSION}.tar.gz" "../${PACKAGE}_${UPSTREAM_VERSION}.orig.tar.gz"
+
+# Install build-dependencies
+mk-build-deps --install --root-cmd sudo --remove \
+	--tool 'apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --quiet --assume-yes'
+
+# Build!
+dpkg-buildpackage
+
+# Output .buildinfo for posterity
+cat ../*.buildinfo
+
+# Output package content, again for posterity
+debc
+
+# Install the package
+sudo debi --with-depends
+
+lintian -i ../*.dsc ../*.changes
+
+# Test if Python module is usable
+python -c 'import cubicweb_mytest; print(dir(cubicweb_mytest))'
+
+# Test if Python3 module is usable
+python3 -c 'import cubicweb_mytest; print(dir(cubicweb_mytest))'
+
+# Run autopkgtest (uh… inception, anyone?)
+sudo autopkgtest ../*.changes -- null