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