On Wed, Aug 22, 2018 at 11:36 PM Arun Raghavan <arun at arunraghavan.net> wrote: > 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" > This seems to be inappropriate for a CI build. How do you know the available cores in the runner? I would expect to have at most MAKEFLAGS=$(nproc) > + - NOCONFIGURE=1 ./bootstrap.sh > + - mkdir build > + - cd build > + - ../configure --localstatedir=/var > I think for CI builds options should be explicitly selected, and have the build fail if any of the expected options cannot be enabled. This may help catch some configure.ac/Makefile.am bugs. > + - make > + - make check > + - make check-daemon > + - make distcheck > This effectively runs make and make check again. I think it would be better to split this to a separate job so it can run in parallel. > + - 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 \ > build-essential should get you a basic build system in place. Otherwise, you need to add make to the list (make might stop being a transitive dependency in the future). > + gettext \ > Isn't intltool necessary too?(If not I could drop that from the debian package) > + git-core \ > + libasound2-dev \ > + libasyncns-dev \ > + libatomic-ops-dev \ > This is not necessary because gcc has atomic builtins. > + 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 > libsystemd-dev is missing. > + > +# 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 > Ubuntu has adduser that creates both user and group at the same time. > +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 > Saludos -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20180823/4e3718bb/attachment.html>