This adds a Dockerfile to generate a Docker image with the required dependencies on top of the standard Ubuntu 18.04 image. The Gitlab CI then runs the PulseAudio build within this image. --- .gitlab-ci.yml | 19 +++++++++++++++++ scripts/Dockerfile | 53 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 scripts/Dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..e9c983075 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,19 @@ +image: registry.freedesktop.org/pulseaudio/pulseaudio/ubuntu:18.04 + +build: + stage: build + script: + - export MAKEFLAGS="-j4" + - NOCONFIGURE=1 ./bootstrap.sh + - mkdir build + - cd build + - ../configure --localstatedir=/var + - make + - make check + - make check-daemon + - make distcheck + - make install DESTDIR=`mktemp -d` + - make dist + artifacts: + paths: + - build/ diff --git a/scripts/Dockerfile b/scripts/Dockerfile new file mode 100644 index 000000000..ed7063212 --- /dev/null +++ b/scripts/Dockerfile @@ -0,0 +1,53 @@ +# Start with current Ubuntu LTS +FROM ubuntu:18.04 + +# Add a PulseAudio's dependencies +RUN apt-get update && apt-get install -y \ + autoconf \ + automake \ + autopoint \ + bash-completion \ + check \ + dbus-x11 \ + g++ \ + gcc \ + gettext \ + git-core \ + libasound2-dev \ + libasyncns-dev \ + libatomic-ops-dev \ + libavahi-client-dev \ + libbluetooth-dev \ + libcap-dev \ + libfftw3-dev \ + libglib2.0-dev \ + libgtk-3-dev \ + libice-dev \ + libjack-dev \ + liblircclient-dev \ + libltdl-dev \ + liborc-0.4-dev \ + libsbc-dev \ + libsndfile1-dev \ + libsoxr-dev \ + libspeexdsp-dev \ + libssl-dev \ + libtdb-dev \ + libudev-dev \ + libwebrtc-audio-processing-dev \ + libwrap0-dev \ + libx11-xcb-dev \ + libxcb1-dev \ + libxml-parser-perl \ + libxtst-dev \ + systemd + +# Add a user and set as default for the build. This is safer, in general, and +# allows us to avoid having to explicitly allow running as root in the +# check-daemon stage. +RUN groupadd -g 1000 a_group && \ + useradd a_user -u 1000 -g a_group -m +USER a_user:a_group + +# And make sure subsequent commands are run in the user's home directory +WORKDIR /home/a_user -- 2.17.1