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.
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.
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
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"
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'
34 file: '/templates/ubuntu.yml'
37 extends: .fdo.container-ifnot-exists@ubuntu
40 GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
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
45 FDO_DISTRIBUTION_PACKAGES: >-
79 libwebrtc-audio-processing-dev
97 - export MAKEFLAGS="-j$(nproc)"
98 - NOCONFIGURE=1 ./bootstrap.sh
101 - ../configure --localstatedir=/var
105 - ulimit -c 0 # don't dump core files on tests that are supposed to assert
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
119 - python3 setup.py install
121 # Do the actual build