context: add property to forcefully disable shared memory channels
[platform/upstream/pulseaudio.git] / .gitlab-ci.yml
1 # The build has two stages. The 'container' stage is used to build a Docker
2 # container and push it to the project's container registry on fd.o GitLab.
3 # This step is only run when the tag for the container changes, else it is
4 # effectively a no-op. All of this infrastructure is inherited from the
5 # wayland/ci-templates repository which is the recommended way to set up CI
6 # infrastructure on fd.o GitLab.
7 #
8 # Once the container stage is done, we move on to the 'build' stage where we
9 # run an autotools and meson build in parallel. Currently, tests are also run
10 # as part of the build stage as there doesn't seem to be significant value to
11 # splitting the stages at the moment.
12
13 stages:
14   - container
15   - build
16
17 variables:
18   # Update this tag when you want to trigger a rebuild the container in which
19   # CI runs, for example when adding new packages to FDO_DISTRIBUTION_PACKAGES.
20   # The tag is an arbitrary string that identifies the exact container
21   # contents.
22   FDO_DISTRIBUTION_TAG: '2020-03-07-01'
23   FDO_DISTRIBUTION_VERSION: '18.04'
24   FDO_UPSTREAM_REPO: 'pulseaudio/pulseaudio'
25   UBUNTU_IMAGE: "$CI_REGISTRY_IMAGE/ubuntu/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG"
26
27 include:
28   # We pull templates from master to avoid the overhead of periodically
29   # scanning for changes upstream. This does means builds might occasionally
30   # break due to upstream changing things, so if you see unexpected build
31   # failures, this might be one cause.
32   - project: 'wayland/ci-templates'
33     ref: 'master'
34     file: '/templates/ubuntu.yml'
35
36 build-container:
37   extends: .fdo.container-ifnot-exists@ubuntu
38   stage: container
39   variables:
40     GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
41
42     # Remember to update FDO_DISTRIBUTION_TAG when modifying this package list!
43     # Otherwise the changes won't have effect since an old container image will
44     # be used.
45     FDO_DISTRIBUTION_PACKAGES: >-
46       autoconf
47       automake
48       autopoint
49       bash-completion
50       check
51       curl
52       dbus-x11
53       g++
54       gcc
55       gettext
56       git-core
57       libasound2-dev
58       libasyncns-dev
59       libavahi-client-dev
60       libbluetooth-dev
61       libcap-dev
62       libfftw3-dev
63       libglib2.0-dev
64       libgtk-3-dev
65       libice-dev
66       libjack-dev
67       liblircclient-dev
68       libltdl-dev
69       liborc-0.4-dev
70       libsbc-dev
71       libsndfile1-dev
72       libsoxr-dev
73       libspeexdsp-dev
74       libssl-dev
75       libsystemd-dev
76       libtdb-dev
77       libtool
78       libudev-dev
79       libwebrtc-audio-processing-dev
80       libwrap0-dev
81       libx11-xcb-dev
82       libxcb1-dev
83       libxml-parser-perl
84       libxml2-utils
85       libxtst-dev
86       make
87       ninja-build
88       pkg-config
89       python3-setuptools
90       systemd
91       wget
92
93 build-autotools:
94   stage: build
95   image: $UBUNTU_IMAGE
96   script:
97     - export MAKEFLAGS="-j$(nproc)"
98     - NOCONFIGURE=1 ./bootstrap.sh
99     - mkdir build
100     - cd build
101     - ../configure --localstatedir=/var
102     - make
103     - make check
104     - make check-daemon
105     - ulimit -c 0 # don't dump core files on tests that are supposed to assert
106     - make distcheck
107   artifacts:
108     paths:
109       - build/
110
111 build-meson:
112   stage: build
113   image: $UBUNTU_IMAGE
114   script:
115     # Install meson
116     - wget -q https://github.com/mesonbuild/meson/releases/download/0.50.0/meson-0.50.0.tar.gz
117     - tar -xf meson-0.50.0.tar.gz
118     - cd meson-0.50.0
119     - python3 setup.py install
120     - cd ..
121     # Do the actual build
122     - meson build
123     - cd build
124     - ninja
125     - ninja test
126     - ninja test-daemon
127   artifacts:
128     paths:
129       - build/