summaryrefslogtreecommitdiff
path: root/tools/ci-build.sh
blob: e37259026c7f57b2519425aaf0cd6f033a297de7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/bash

# Copyright © 2016 Simon McVittie
#
# SPDX-License-Identifier: MIT
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation
# files (the "Software"), to deal in the Software without
# restriction, including without limitation the rights to use, copy,
# modify, merge, publish, distribute, sublicense, and/or sell copies
# of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.

set -e
set -x

NULL=
srcdir="$(pwd)"
prefix="$(mktemp -d -t "prefix.XXXXXX")"

if [ -z "$dbus_ci_parallel" ]; then
	dbus_ci_parallel=2
fi

if [ -n "$ci_docker" ]; then
	exec docker run \
		--env=ci_distro="${ci_distro}" \
		--env=ci_docker="" \
		--env=ci_suite="${ci_suite}" \
		--env=dbus_ci_parallel="${dbus_ci_parallel}" \
		--env=dbus_ci_system_python="${dbus_ci_system_python-}" \
		--privileged \
		ci-image \
		tools/ci-build.sh \
		"$@"
fi

if [ -n "$dbus_ci_system_python" ]; then
	# Reset to standard paths to use the Ubuntu version of python
	unset LDFLAGS
	unset PYTHONPATH
	unset PYTHON_CFLAGS
	unset PYTHON_CONFIGURE_OPTS
	unset VIRTUAL_ENV
	export PATH=/usr/bin:/bin
	export PYTHON="$(command -v "$dbus_ci_system_python")"
fi

NOCONFIGURE=1 ./autogen.sh

e=0
(
	mkdir _autotools && cd _autotools && "${srcdir}/configure" \
		--enable-installed-tests \
		--prefix="$prefix" \
		--with-python-prefix='${prefix}' \
		--with-python-exec-prefix='${exec_prefix}' \
		"$@" \
		${NULL}
) || e=1
if [ "x$e" != x0 ]; then
	cat "_autotools/config.log"
fi
test "x$e" = x0

make="make -j${dbus_ci_parallel} V=1 VERBOSE=1"

$make -C _autotools
$make -C _autotools check
$make -C _autotools distcheck
$make -C _autotools install
( cd "$prefix" && find . -ls )

dbus_ci_pyversion="$(${PYTHON:-python3} -c 'import sysconfig; print(sysconfig.get_config_var("VERSION"))')"
export PYTHONPATH="$prefix/lib/python$dbus_ci_pyversion/site-packages:$PYTHONPATH"
export XDG_DATA_DIRS="$prefix/share:/usr/local/share:/usr/share"
gnome-desktop-testing-runner dbus-python

# re-run the tests with dbus-python only installed via pip
if [ -n "$VIRTUAL_ENV" ]; then
	rm -fr "${prefix}/lib/python$dbus_ci_pyversion/site-packages"
	pip install -vvv "${builddir}"/dbus-python-*.tar.gz
	gnome-desktop-testing-runner dbus-python
fi