[pulseaudio-discuss] [PATCH] gitlab: Add support for GitLab CI

Arun Raghavan arun at arunraghavan.net
Thu Aug 23 02:34:52 UTC 2018


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



More information about the pulseaudio-discuss mailing list