1+ # Create merge request pipelines for open merge requests, branch pipelines
2+ # otherwise. This allows MRs for new users to run CI, and prevents duplicate
3+ # pipelines for branches with open MRs.
4+ workflow :
5+ rules :
6+ - if : $CI_PIPELINE_SOURCE == "merge_request_event"
7+ - if : $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
8+ when : never
9+ - if : $CI_COMMIT_BRANCH
10+
111stages :
212 - container
313 - container_coverity
818variables :
919 FDO_UPSTREAM_REPO : ' pipewire/pipewire'
1020
11- # ci-templates as of Jan 27th 2022
12- .templates_sha : &templates_sha 0c312d9c7255f46e741d43bcd1930f09cd12efe7
21+ # ci-templates as of Mar 25th 2024
22+ .templates_sha : &templates_sha ef5e4669b7500834a17ffe9277e15fbb6d977fff
1323
1424include :
1525 - project : ' freedesktop/ci-templates'
@@ -21,12 +31,15 @@ include:
2131 - project : ' freedesktop/ci-templates'
2232 ref : *templates_sha
2333 file : ' /templates/alpine.yml'
34+ - project : ' freedesktop/ci-templates'
35+ ref : *templates_sha
36+ file : ' /templates/debian.yml'
2437
2538.fedora :
2639 variables :
2740 # Update this tag when you want to trigger a rebuild
28- FDO_DISTRIBUTION_TAG : ' 2024-05-30 .0'
29- FDO_DISTRIBUTION_VERSION : ' 40 '
41+ FDO_DISTRIBUTION_TAG : ' 2025-10-22 .0'
42+ FDO_DISTRIBUTION_VERSION : ' 42 '
3043 FDO_DISTRIBUTION_PACKAGES : >-
3144 alsa-lib-devel
3245 avahi-devel
@@ -35,6 +48,7 @@ include:
3548 dbus-devel
3649 doxygen
3750 fdk-aac-free-devel
51+ file
3852 findutils
3953 gcc
4054 gcc-c++
@@ -45,15 +59,16 @@ include:
4559 gstreamer1-plugins-base-devel
4660 jack-audio-connection-kit-devel
4761 libasan
62+ liblc3-devel
4863 libcanberra-devel
64+ libebur128-devel
4965 libffado-devel
5066 libldac-devel
5167 libmysofa-devel
5268 libsndfile-devel
5369 libubsan
5470 libusb1-devel
5571 lilv-devel
56- libv4l-devel
5772 libva-devel
5873 libX11-devel
5974 ModemManager-devel
@@ -65,6 +80,7 @@ include:
6580 sbc-devel
6681 ShellCheck
6782 SDL2-devel
83+ spandsp-devel
6884 systemd-devel
6985 vulkan-loader-devel
7086 webrtc-audio-processing-devel
@@ -76,6 +92,9 @@ include:
7692 openal-soft
7793 readline-devel
7894 pandoc
95+ fftw-libs-single
96+ fftw-devel
97+ onnxruntime-devel
7998# Uncommenting the following two lines and disabling the meson entry above
8099# will re-enable use of Meson via pip but please consider using a newer distro
81100# image first or making the build system compatible instead! This is because
@@ -90,7 +109,7 @@ include:
90109.ubuntu :
91110 variables :
92111 # Update this tag when you want to trigger a rebuild
93- FDO_DISTRIBUTION_TAG : ' 2024-01-12 .0'
112+ FDO_DISTRIBUTION_TAG : ' 2025-05-10 .0'
94113 FDO_DISTRIBUTION_VERSION : ' 22.04'
95114 FDO_DISTRIBUTION_PACKAGES : >-
96115 debhelper-compat
@@ -111,7 +130,6 @@ include:
111130 libsnapd-glib-dev
112131 libudev-dev
113132 libva-dev
114- libv4l-dev
115133 libx11-dev
116134 meson
117135 ninja-build
@@ -127,10 +145,34 @@ include:
127145# FDO_DISTRIBUTION_EXEC: >-
128146# pip3 install meson
129147
148+ .debian :
149+ variables :
150+ # Update this tag when you want to trigger a rebuild
151+ BASE_TAG : ' 2025-08-10.0'
152+ FDO_DISTRIBUTION_VERSION : ' trixie'
153+ FDO_DISTRIBUTION_PACKAGES : >-
154+ build-essential
155+ dpkg-dev
156+ findutils
157+ git
158+ meson
159+
160+ .debian-archictectures :
161+ parallel :
162+ matrix :
163+ - ARCH :
164+ - amd64
165+ - arm64
166+ - armhf
167+ - i386
168+ - ppc64el
169+ - riscv64
170+ - s390x
171+
130172.alpine :
131173 variables :
132174 # Update this tag when you want to trigger a rebuild
133- FDO_DISTRIBUTION_TAG : ' 2024-09-20 .0'
175+ FDO_DISTRIBUTION_TAG : ' 2025-03-25 .0'
134176 FDO_DISTRIBUTION_VERSION : ' 3.20'
135177 FDO_DISTRIBUTION_PACKAGES : >-
136178 alsa-lib-dev
@@ -199,7 +241,8 @@ include:
199241 - echo "Building with meson options $MESON_OPTIONS"
200242 - meson setup "$BUILD_DIR" --prefix="$PREFIX" $MESON_OPTIONS
201243 - meson compile -C "$BUILD_DIR" $COMPILE_ARGS
202- - meson test -C "$BUILD_DIR" --no-rebuild
244+ - echo "Running tests with meson options $MESON_TEST_OPTIONS"
245+ - meson test -C "$BUILD_DIR" --no-rebuild $MESON_TEST_OPTIONS
203246 - meson install -C "$BUILD_DIR" --no-rebuild
204247 artifacts :
205248 name : pipewire-$CI_COMMIT_SHA
@@ -215,6 +258,18 @@ container_ubuntu:
215258 variables :
216259 GIT_STRATEGY : none # no need to pull the whole tree for rebuilding the image
217260
261+ container_debian :
262+ extends :
263+ - .debian
264+ - .debian-archictectures
265+ - .fdo.container-build@debian
266+ stage : container
267+ variables :
268+ GIT_STRATEGY : none # no need to pull the whole tree for rebuilding the image
269+ FDO_DISTRIBUTION_TAG : " $BASE_TAG-$ARCH"
270+ FDO_DISTRIBUTION_EXEC : >-
271+ ./.gitlab/ci/setup-debian-cross-container.sh "$ARCH"
272+
218273container_fedora :
219274 extends :
220275 - .fedora
@@ -247,16 +302,64 @@ build_on_ubuntu:
247302 - .fdo.distribution-image@ubuntu
248303 - .build
249304 stage : build
305+ needs :
306+ - job : container_ubuntu
307+ artifacts : false
250308 variables :
251309 MESON_OPTIONS : " -Dsession-managers=[] -Dsnap=enabled"
252310
311+ build_on_debian :
312+ extends :
313+ - .debian
314+ - .debian-archictectures
315+ - .not_coverity
316+ - .fdo.distribution-image@debian
317+ - .build
318+ stage : build
319+ needs :
320+ - job : container_debian
321+ artifacts : false
322+ # ideally
323+ # parallel:
324+ # matrix:
325+ # - ARCH: "$ARCH"
326+ # however https://gitlab.com/gitlab-org/gitlab/-/issues/423553
327+ # ("Expand variables in `needs:parallel:matrix`")
328+ variables :
329+ FDO_DISTRIBUTION_TAG : " $BASE_TAG-$ARCH"
330+ # see /.gitlab/ci/setup-debian-cross-container.sh for installed packages
331+ MESON_OPTIONS : >-
332+ --cross-file /opt/meson-$ARCH.cross
333+ -D c_args=['-UFASTPATH']
334+ -D cpp_args=['-UFASTPATH']
335+ -D auto_features=enabled
336+ -D session-managers=[]
337+ -D bluez5-backend-native-mm=enabled
338+ -D bluez5-codec-lc3plus=disabled
339+ -D bluez5-codec-ldac=disabled
340+ -D bluez5-codec-ldac-dec=disabled
341+ -D libcamera=disabled
342+ -D roc=disabled
343+ -D snap=disabled
344+ -D systemd-user-service=disabled
345+ -D systemd-system-service=disabled
346+ -D onnxruntime=disabled
347+ -D vulkan=enabled
348+ -D ffmpeg=enabled
349+ -D pw-cat-ffmpeg=enabled
350+ MESON_TEST_OPTIONS : >-
351+ --timeout-multiplier=2
352+
253353.build_on_fedora :
254354 extends :
255355 - .fedora
256356 - .not_coverity
257357 - .fdo.distribution-image@fedora
258358 - .build
259359 stage : build
360+ needs :
361+ - job : container_fedora
362+ artifacts : false
260363
261364build_on_fedora :
262365 extends :
@@ -307,17 +410,30 @@ build_on_fedora_html_docs:
307410 -Dsndfile=enabled
308411 -Dsession-managers=[]
309412 before_script :
310- - git fetch origin 1.0 master
413+ - git fetch origin 1.0 1.2 1.4 master
311414 - git branch -f 1.0 origin/1.0
312- - git branch -f master origin/master
313415 - git clone -b 1.0 . branch-1.0
416+ - git branch -f 1.2 origin/1.2
417+ - git clone -b 1.2 . branch-1.2
418+ - git branch -f 1.4 origin/1.4
419+ - git clone -b 1.4 . branch-1.4
420+ - git branch -f master origin/master
314421 - git clone -b master . branch-master
315422 - !reference [.build, before_script]
316423 script :
317424 - cd branch-1.0
318425 - meson setup builddir $MESON_OPTIONS
319426 - meson compile -C builddir doc/pipewire-docs
320- - cd ../branch-master
427+ - cd ..
428+ - cd branch-1.2
429+ - meson setup builddir $MESON_OPTIONS
430+ - meson compile -C builddir doc/pipewire-docs
431+ - cd ..
432+ - cd branch-1.4
433+ - meson setup builddir $MESON_OPTIONS
434+ - meson compile -C builddir doc/pipewire-docs
435+ - cd ..
436+ - cd branch-master
321437 - meson setup builddir $MESON_OPTIONS
322438 - meson compile -C builddir doc/pipewire-docs
323439 artifacts :
@@ -336,6 +452,9 @@ build_on_alpine:
336452 - .fdo.distribution-image@alpine
337453 - .build
338454 stage : build
455+ needs :
456+ - job : container_alpine
457+ artifacts : false
339458 variables :
340459 MESON_OPTIONS : " -Dsession-managers=[] -Dsnap=disabled -Dlogind=enabled -Dlogind-provider=libelogind"
341460
@@ -344,13 +463,13 @@ build_all:
344463 extends :
345464 - .build_on_fedora
346465 variables :
347- # Fedora doesn't have libfreeaptx, lc3plus, lc3, or roc
466+ # Fedora doesn't have libfreeaptx, lc3plus, or roc
348467 # libcamera has no stable API, so let's not chase that target
349468 MESON_OPTIONS : >-
350469 -Dauto_features=enabled
351470 -Dbluez5-codec-aptx=disabled
352471 -Dbluez5-codec-lc3plus=disabled
353- -Dbluez5-codec-lc3 =disabled
472+ -Dbluez5-codec-ldac-dec =disabled
354473 -Droc=disabled
355474 -Dlibcamera=disabled
356475 -Dsession-managers=[]
@@ -470,6 +589,9 @@ build_with_coverity:
470589 - .fdo.suffixed-image@fedora
471590 - .build
472591 stage : analysis
592+ needs :
593+ - job : container_coverity
594+ artifacts : false
473595 script :
474596 - export PATH=/opt/coverity/bin:$PATH
475597 - meson setup "$BUILD_DIR" --prefix="$PREFIX"
@@ -545,8 +667,9 @@ check_missing_headers:
545667 - .not_coverity
546668 - .fdo.distribution-image@fedora
547669 stage : analysis
548- dependencies :
549- - build_on_fedora
670+ needs :
671+ - job : build_on_fedora
672+ artifacts : true
550673 script :
551674 - export PREFIX=`find -name prefix-*`
552675 - ./.gitlab/ci/check_missing_headers.sh
@@ -555,15 +678,18 @@ pages:
555678 extends :
556679 - .not_coverity
557680 stage : pages
558- dependencies :
559- - build_on_fedora_html_docs
681+ needs :
682+ - job : build_on_fedora_html_docs
683+ artifacts : true
560684 script :
561- - mkdir public public/devel
562- - cp -R branch-1.0/builddir/doc/html/* public/
685+ - mkdir public public/1.0 public/1.2 public/1.4 public/devel
686+ - cp -R branch-1.0/builddir/doc/html/* public/1.0/
687+ - cp -R branch-1.2/builddir/doc/html/* public/1.2/
688+ - cp -R branch-1.4/builddir/doc/html/* public/1.4/
563689 - cp -R branch-master/builddir/doc/html/* public/devel/
690+ - (cd public && ln -s 1.4/* .)
564691 artifacts :
565692 paths :
566693 - public
567694 rules :
568695 - if : $CI_COMMIT_BRANCH == 'master'
569- - if : $CI_COMMIT_BRANCH == '1.0'
0 commit comments