• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/bash
2
3set -eu
4
5# keep container around if $DEBUG is set
6[ -n "${DEBUG:-}" ] || OPTS="--rm"
7
8if type podman >/dev/null 2>&1; then
9    RUNC=podman
10else
11    RUNC="sudo docker"
12fi
13
14MOUNT_MODE=":ro"
15
16$RUNC run --interactive ${RUNC_OPTIONS:-} ${OPTS:-} --volume `pwd`:/source${MOUNT_MODE:-} ${1:-docker.io/amd64/ubuntu:rolling} /bin/bash << EOF
17set -ex
18
19# avoid meson exit code 125; https://github.com/containers/podman/issues/11540
20trap '[ \$? -eq 0 ] || exit 1' EXIT
21
22# go-faster apt
23echo  'Acquire::Languages "none";' > /etc/apt/apt.conf.d/90nolanguages
24
25# upgrade
26export DEBIAN_FRONTEND=noninteractive
27apt-get update
28apt-get install -y eatmydata
29eatmydata apt-get -y --purge dist-upgrade
30
31# install build and test dependencies
32eatmydata apt-get install -y make libtool libudev-dev pkg-config umockdev libumockdev-dev
33
34# run build as user
35useradd build
36su -s /bin/bash - build << EOG
37set -ex
38
39mkdir "/tmp/builddir"
40cd "/tmp/builddir"
41
42CFLAGS="-O2"
43
44# enable extra warnings
45CFLAGS+=" -Winline"
46CFLAGS+=" -Wmissing-include-dirs"
47CFLAGS+=" -Wnested-externs"
48CFLAGS+=" -Wpointer-arith"
49CFLAGS+=" -Wredundant-decls"
50CFLAGS+=" -Wswitch-enum"
51export CFLAGS
52
53export CXXFLAGS="\${CFLAGS}"
54
55echo ""
56echo "Configuring ..."
57/source/configure --enable-examples-build --enable-tests-build
58
59echo ""
60echo "Building ..."
61make -j4 -k
62
63echo ""
64echo "Running umockdev tests ..."
65tests/umockdev
66EOG
67EOF
68