summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Raghavan <arun@arunraghavan.net>2018-06-30 12:03:30 +0530
committerArun Raghavan <arun@arunraghavan.net>2018-08-27 16:05:04 +0530
commitabfd5242e88ea9ce76e709265e5b73d4ca13677e (patch)
tree93db1c94a5ef0d31639caa4207c99be220c98faa
parentf84b8516dfd7b6060eacc7d0ab28bb3831ea3dd7 (diff)
downloadpulseaudio-abfd5242e88ea9ce76e709265e5b73d4ca13677e.tar.gz
gitlab: Add support for GitLab CI
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.
-rw-r--r--.gitlab-ci.yml18
-rw-r--r--scripts/Dockerfile54
2 files changed, 72 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 000000000..b25396092
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,18 @@
+image: registry.freedesktop.org/pulseaudio/pulseaudio/ubuntu:18.04
+
+build:
+ stage: build
+ script:
+ - export MAKEFLAGS="-j$(nproc)"
+ - NOCONFIGURE=1 ./bootstrap.sh
+ - mkdir build
+ - cd build
+ - ../configure --localstatedir=/var
+ - make
+ - make check
+ - make check-daemon
+ - ulimit -c 0 # don't dump core files on tests that are supposed to assert
+ - make distcheck
+ artifacts:
+ paths:
+ - build/
diff --git a/scripts/Dockerfile b/scripts/Dockerfile
new file mode 100644
index 000000000..aa4ae673f
--- /dev/null
+++ b/scripts/Dockerfile
@@ -0,0 +1,54 @@
+# 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 \
+ 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 \
+ libsystemd-dev \
+ libtdb-dev \
+ libudev-dev \
+ libwebrtc-audio-processing-dev \
+ libwrap0-dev \
+ libx11-xcb-dev \
+ libxcb1-dev \
+ libxml-parser-perl \
+ libxtst-dev \
+ make \
+ 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