2019-11-21 11:21:40 +00:00
|
|
|
stages:
|
|
|
|
- container
|
2021-03-25 09:30:14 +00:00
|
|
|
- container_coverity
|
2019-11-21 11:21:40 +00:00
|
|
|
- build
|
2021-03-25 09:30:14 +00:00
|
|
|
- analysis
|
2020-05-19 07:05:53 +00:00
|
|
|
- pages
|
2019-11-21 11:21:40 +00:00
|
|
|
|
|
|
|
variables:
|
2020-03-09 07:33:35 +00:00
|
|
|
FDO_UPSTREAM_REPO: 'pipewire/pipewire'
|
2020-05-19 06:29:04 +00:00
|
|
|
|
2022-01-27 04:49:57 +00:00
|
|
|
# ci-templates as of Jan 27th 2022
|
|
|
|
.templates_sha: &templates_sha 0c312d9c7255f46e741d43bcd1930f09cd12efe7
|
2019-11-21 11:21:40 +00:00
|
|
|
|
|
|
|
include:
|
2020-05-19 06:29:04 +00:00
|
|
|
- project: 'freedesktop/ci-templates'
|
|
|
|
ref: *templates_sha
|
2019-11-21 11:21:40 +00:00
|
|
|
file: '/templates/fedora.yml'
|
2021-06-10 10:28:41 +00:00
|
|
|
- project: 'freedesktop/ci-templates'
|
|
|
|
ref: *templates_sha
|
|
|
|
file: '/templates/ubuntu.yml'
|
2022-01-28 10:16:37 +00:00
|
|
|
- project: 'freedesktop/ci-templates'
|
|
|
|
ref: *templates_sha
|
|
|
|
file: '/templates/alpine.yml'
|
2019-11-21 11:21:40 +00:00
|
|
|
|
2020-05-19 06:29:04 +00:00
|
|
|
.fedora:
|
2019-11-21 11:21:40 +00:00
|
|
|
variables:
|
2020-05-19 06:29:04 +00:00
|
|
|
# Update this tag when you want to trigger a rebuild
|
2023-11-22 18:03:00 +00:00
|
|
|
FDO_DISTRIBUTION_TAG: '2023-11-22.0'
|
|
|
|
FDO_DISTRIBUTION_VERSION: '39'
|
2020-05-19 06:29:04 +00:00
|
|
|
FDO_DISTRIBUTION_PACKAGES: >-
|
2019-11-21 11:21:40 +00:00
|
|
|
alsa-lib-devel
|
2022-01-27 04:42:47 +00:00
|
|
|
avahi-devel
|
2019-11-21 11:21:40 +00:00
|
|
|
bluez-libs-devel
|
2021-10-12 00:01:18 +00:00
|
|
|
clang
|
2019-11-21 11:21:40 +00:00
|
|
|
dbus-devel
|
|
|
|
doxygen
|
2022-01-27 04:42:47 +00:00
|
|
|
fdk-aac-free-devel
|
2019-11-21 11:21:40 +00:00
|
|
|
findutils
|
|
|
|
gcc
|
2021-09-07 21:34:30 +00:00
|
|
|
gcc-c++
|
2019-11-21 11:21:40 +00:00
|
|
|
git
|
|
|
|
glib-devel
|
|
|
|
graphviz
|
|
|
|
gstreamer1-devel
|
|
|
|
gstreamer1-plugins-base-devel
|
|
|
|
jack-audio-connection-kit-devel
|
2023-03-09 22:14:38 +00:00
|
|
|
libasan
|
2022-01-27 04:42:47 +00:00
|
|
|
libcanberra-devel
|
2023-05-31 10:23:04 +00:00
|
|
|
libffado-devel
|
2022-01-27 04:42:47 +00:00
|
|
|
libldac-devel
|
2023-01-15 05:01:37 +00:00
|
|
|
libmysofa-devel
|
2021-05-09 22:27:20 +00:00
|
|
|
libsndfile-devel
|
2023-03-09 22:14:38 +00:00
|
|
|
libubsan
|
2023-04-17 18:19:09 +00:00
|
|
|
libusb1-devel
|
2022-01-27 04:42:47 +00:00
|
|
|
lilv-devel
|
2019-11-21 11:21:40 +00:00
|
|
|
libv4l-devel
|
|
|
|
libva-devel
|
|
|
|
libX11-devel
|
2022-09-07 15:35:39 +00:00
|
|
|
ModemManager-devel
|
2023-04-17 18:19:09 +00:00
|
|
|
meson
|
2022-01-27 04:42:47 +00:00
|
|
|
openssl-devel
|
2019-11-21 11:21:40 +00:00
|
|
|
pulseaudio-libs-devel
|
2021-09-03 07:16:48 +00:00
|
|
|
python3-docutils
|
2023-04-18 08:21:24 +00:00
|
|
|
python3-pip
|
2019-11-21 11:21:40 +00:00
|
|
|
sbc-devel
|
2021-05-09 22:34:11 +00:00
|
|
|
ShellCheck
|
2019-11-21 11:21:40 +00:00
|
|
|
SDL2-devel
|
|
|
|
systemd-devel
|
|
|
|
vulkan-loader-devel
|
2021-05-28 15:28:03 +00:00
|
|
|
webrtc-audio-processing-devel
|
2019-11-21 11:21:40 +00:00
|
|
|
which
|
2021-07-07 02:55:03 +00:00
|
|
|
valgrind
|
2021-08-01 18:13:22 +00:00
|
|
|
ninja-build
|
|
|
|
pkgconf
|
2022-03-05 12:33:11 +00:00
|
|
|
pulseaudio-utils
|
|
|
|
openal-soft
|
2022-11-07 15:16:22 +00:00
|
|
|
readline-devel
|
2023-11-18 18:57:14 +00:00
|
|
|
pandoc
|
2023-04-18 08:21:24 +00:00
|
|
|
# Uncommenting the following two lines and disabling the meson entry above
|
2023-04-17 18:19:09 +00:00
|
|
|
# will re-enable use of Meson via pip but please consider using a newer distro
|
|
|
|
# image first or making the build system compatible instead! This is because
|
|
|
|
# using pip or another 3rd party repo defeats the point testing the particular
|
|
|
|
# distro for regressions.
|
2023-04-18 08:21:24 +00:00
|
|
|
# NOTE: If you do end up using pip3 for meson, be sure to also update the
|
|
|
|
# build_meson_prerelease and build_meson_exact_release build instructions
|
|
|
|
# to uninstall the pip3 version again and probably to not call dnf remove
|
2023-04-17 18:19:09 +00:00
|
|
|
# FDO_DISTRIBUTION_EXEC: >-
|
|
|
|
# pip3 install meson
|
2019-11-03 14:58:48 +00:00
|
|
|
|
2021-06-10 10:28:41 +00:00
|
|
|
.ubuntu:
|
|
|
|
variables:
|
|
|
|
# Update this tag when you want to trigger a rebuild
|
2024-01-12 09:40:06 +00:00
|
|
|
FDO_DISTRIBUTION_TAG: '2024-01-12.0'
|
2023-04-17 15:38:27 +00:00
|
|
|
FDO_DISTRIBUTION_VERSION: '22.04'
|
2021-06-10 10:28:41 +00:00
|
|
|
FDO_DISTRIBUTION_PACKAGES: >-
|
|
|
|
debhelper-compat
|
|
|
|
findutils
|
|
|
|
git
|
2023-11-22 10:26:16 +00:00
|
|
|
libapparmor-dev
|
2021-06-10 10:28:41 +00:00
|
|
|
libasound2-dev
|
|
|
|
libavcodec-dev
|
|
|
|
libavfilter-dev
|
|
|
|
libavformat-dev
|
|
|
|
libdbus-1-dev
|
2023-02-16 19:49:31 +00:00
|
|
|
libbluetooth-dev
|
2021-06-10 10:28:41 +00:00
|
|
|
libglib2.0-dev
|
|
|
|
libgstreamer1.0-dev
|
|
|
|
libgstreamer-plugins-base1.0-dev
|
|
|
|
libsbc-dev
|
|
|
|
libsdl2-dev
|
2023-11-22 10:26:16 +00:00
|
|
|
libsnapd-glib-dev
|
2021-06-10 10:28:41 +00:00
|
|
|
libudev-dev
|
|
|
|
libva-dev
|
|
|
|
libv4l-dev
|
|
|
|
libx11-dev
|
2023-04-17 18:19:09 +00:00
|
|
|
meson
|
2021-06-18 15:06:28 +00:00
|
|
|
ninja-build
|
2021-06-10 10:28:41 +00:00
|
|
|
pkg-config
|
2021-09-03 07:16:48 +00:00
|
|
|
python3-docutils
|
2021-06-10 10:28:41 +00:00
|
|
|
systemd
|
2023-04-17 18:19:09 +00:00
|
|
|
# Uncommenting the following three lines and disabling the meson entry above
|
2023-04-17 15:38:27 +00:00
|
|
|
# will re-enable use of Meson via pip but please consider using a newer distro
|
|
|
|
# image first or making the build system compatible instead! This is because
|
|
|
|
# using pip or another 3rd party repo defeats the point testing the particular
|
|
|
|
# distro for regressions.
|
|
|
|
# python3-pip
|
|
|
|
# FDO_DISTRIBUTION_EXEC: >-
|
|
|
|
# pip3 install meson
|
2021-06-10 10:28:41 +00:00
|
|
|
|
2022-01-28 10:16:37 +00:00
|
|
|
.alpine:
|
|
|
|
variables:
|
|
|
|
# Update this tag when you want to trigger a rebuild
|
2023-04-17 15:45:20 +00:00
|
|
|
FDO_DISTRIBUTION_TAG: '2023-04-17.0'
|
|
|
|
FDO_DISTRIBUTION_VERSION: '3.17'
|
2022-01-28 10:16:37 +00:00
|
|
|
FDO_DISTRIBUTION_PACKAGES: >-
|
|
|
|
alsa-lib-dev
|
|
|
|
avahi-dev
|
|
|
|
bash
|
|
|
|
bluez-dev
|
|
|
|
gcc
|
|
|
|
g++
|
|
|
|
dbus-dev
|
|
|
|
doxygen
|
|
|
|
eudev-dev
|
|
|
|
fdk-aac-dev
|
|
|
|
git
|
|
|
|
glib-dev
|
|
|
|
graphviz
|
|
|
|
gst-plugins-base-dev
|
|
|
|
gstreamer-dev
|
|
|
|
jack-dev
|
|
|
|
libfreeaptx-dev
|
|
|
|
libusb-dev
|
|
|
|
libx11-dev
|
|
|
|
meson
|
2022-09-07 15:35:39 +00:00
|
|
|
modemmanager-dev
|
2022-01-28 10:16:37 +00:00
|
|
|
ncurses-dev
|
|
|
|
pulseaudio-dev
|
|
|
|
readline-dev
|
|
|
|
sbc-dev
|
|
|
|
vulkan-loader-dev
|
|
|
|
xmltoman
|
|
|
|
|
2021-03-25 09:30:14 +00:00
|
|
|
.coverity:
|
|
|
|
variables:
|
|
|
|
FDO_REPO_SUFFIX: 'coverity'
|
|
|
|
FDO_BASE_IMAGE: registry.freedesktop.org/$FDO_UPSTREAM_REPO/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
|
|
|
|
FDO_DISTRIBUTION_PACKAGES: >-
|
|
|
|
curl
|
|
|
|
FDO_DISTRIBUTION_EXEC: >-
|
2021-03-25 11:54:01 +00:00
|
|
|
mkdir -p /opt ;
|
|
|
|
cd /opt ;
|
2022-02-16 16:10:52 +00:00
|
|
|
curl -o /tmp/cov-analysis-linux64.tgz https://scan.coverity.com/download/cxx/linux64
|
2021-03-25 11:54:01 +00:00
|
|
|
--form project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN ;
|
|
|
|
tar xf /tmp/cov-analysis-linux64.tgz ;
|
|
|
|
mv cov-analysis-linux64-* coverity ;
|
2021-03-25 09:30:14 +00:00
|
|
|
rm /tmp/cov-analysis-linux64.tgz
|
2024-04-05 15:24:51 +00:00
|
|
|
rules:
|
|
|
|
- if: $COVERITY != null
|
2021-03-25 09:30:14 +00:00
|
|
|
|
|
|
|
.not_coverity:
|
2024-04-05 15:24:51 +00:00
|
|
|
rules:
|
|
|
|
- if: $COVERITY == null
|
2021-03-25 09:30:14 +00:00
|
|
|
|
2020-05-19 06:29:04 +00:00
|
|
|
.build:
|
|
|
|
before_script:
|
|
|
|
# setup the environment
|
2021-04-14 00:21:58 +00:00
|
|
|
- export BUILD_ID="$CI_JOB_ID"
|
2020-05-19 06:29:04 +00:00
|
|
|
- export PREFIX="$PWD/prefix-$BUILD_ID"
|
|
|
|
- export BUILD_DIR="$PWD/build-$BUILD_ID"
|
|
|
|
- export XDG_RUNTIME_DIR="$(mktemp -p $PWD -d xdg-runtime-XXXXXX)"
|
2021-11-10 05:36:46 +00:00
|
|
|
- |
|
|
|
|
if [ -n "$FDO_CI_CONCURRENT" ]; then
|
2023-03-09 22:48:47 +00:00
|
|
|
COMPILE_ARGS="-j$FDO_CI_CONCURRENT"
|
|
|
|
export COMPILE_ARGS
|
2021-11-10 05:36:46 +00:00
|
|
|
fi
|
2019-11-03 14:58:48 +00:00
|
|
|
script:
|
2021-10-17 22:28:04 +00:00
|
|
|
- echo "Building with meson options $MESON_OPTIONS"
|
2023-03-09 22:32:53 +00:00
|
|
|
- meson setup "$BUILD_DIR" --prefix="$PREFIX" $MESON_OPTIONS
|
2023-03-09 22:48:47 +00:00
|
|
|
- meson compile -C "$BUILD_DIR" $COMPILE_ARGS
|
2023-03-09 22:41:09 +00:00
|
|
|
- meson test -C "$BUILD_DIR" --no-rebuild
|
2023-03-09 22:43:16 +00:00
|
|
|
- meson install -C "$BUILD_DIR" --no-rebuild
|
2021-04-15 03:27:06 +00:00
|
|
|
artifacts:
|
|
|
|
name: pipewire-$CI_COMMIT_SHA
|
|
|
|
when: always
|
|
|
|
paths:
|
|
|
|
- build-*/meson-logs
|
2020-05-19 06:29:04 +00:00
|
|
|
|
2021-06-10 10:28:41 +00:00
|
|
|
container_ubuntu:
|
|
|
|
extends:
|
|
|
|
- .ubuntu
|
|
|
|
- .fdo.container-build@ubuntu
|
|
|
|
stage: container
|
|
|
|
variables:
|
|
|
|
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
|
|
|
|
|
2020-05-19 06:29:04 +00:00
|
|
|
container_fedora:
|
|
|
|
extends:
|
|
|
|
- .fedora
|
|
|
|
- .fdo.container-build@fedora
|
|
|
|
stage: container
|
|
|
|
variables:
|
|
|
|
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
|
|
|
|
|
2022-01-28 10:16:37 +00:00
|
|
|
container_alpine:
|
|
|
|
extends:
|
|
|
|
- .alpine
|
|
|
|
- .fdo.container-build@alpine
|
|
|
|
stage: container
|
|
|
|
variables:
|
|
|
|
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
|
|
|
|
|
2021-03-25 09:30:14 +00:00
|
|
|
container_coverity:
|
|
|
|
extends:
|
|
|
|
- .fedora
|
|
|
|
- .coverity
|
|
|
|
- .fdo.container-build@fedora
|
|
|
|
stage: container_coverity
|
|
|
|
variables:
|
|
|
|
GIT_STRATEGY: none
|
|
|
|
|
2021-06-10 10:28:41 +00:00
|
|
|
build_on_ubuntu:
|
|
|
|
extends:
|
|
|
|
- .ubuntu
|
|
|
|
- .not_coverity
|
|
|
|
- .fdo.distribution-image@ubuntu
|
|
|
|
- .build
|
|
|
|
stage: build
|
2022-10-18 13:14:14 +00:00
|
|
|
variables:
|
2023-11-22 10:26:16 +00:00
|
|
|
MESON_OPTIONS: "-Dsession-managers=[] -Dsnap=enabled"
|
2021-06-10 10:28:41 +00:00
|
|
|
|
2021-04-15 03:27:06 +00:00
|
|
|
.build_on_fedora:
|
2020-05-19 06:29:04 +00:00
|
|
|
extends:
|
|
|
|
- .fedora
|
2021-03-25 09:30:14 +00:00
|
|
|
- .not_coverity
|
2020-05-19 06:29:04 +00:00
|
|
|
- .fdo.distribution-image@fedora
|
|
|
|
- .build
|
|
|
|
stage: build
|
2021-04-15 03:27:06 +00:00
|
|
|
|
|
|
|
build_on_fedora:
|
|
|
|
extends:
|
|
|
|
- .build_on_fedora
|
2021-04-14 00:06:33 +00:00
|
|
|
variables:
|
|
|
|
MESON_OPTIONS: >-
|
|
|
|
-Ddocs=enabled
|
2024-03-31 12:39:00 +00:00
|
|
|
-Dman=enabled
|
2024-03-10 20:25:42 +00:00
|
|
|
-Ddoc-prefix-value=/usr
|
|
|
|
-Ddoc-sysconfdir-value=/etc
|
2021-04-14 00:06:33 +00:00
|
|
|
-Dinstalled_tests=enabled
|
|
|
|
-Dsystemd-system-service=enabled
|
|
|
|
-Dbluez5-backend-hsphfpd=enabled
|
|
|
|
-Daudiotestsrc=enabled
|
|
|
|
-Dtest=enabled
|
|
|
|
-Dvideotestsrc=enabled
|
|
|
|
-Dvolume=enabled
|
|
|
|
-Dvulkan=enabled
|
|
|
|
-Dsdl2=enabled
|
|
|
|
-Dsndfile=enabled
|
2022-10-18 13:14:14 +00:00
|
|
|
-Dsession-managers=[]
|
2023-11-22 10:26:16 +00:00
|
|
|
-Dsnap=disabled
|
2021-04-15 03:27:06 +00:00
|
|
|
artifacts:
|
|
|
|
name: pipewire-$CI_COMMIT_SHA
|
|
|
|
when: always
|
|
|
|
paths:
|
|
|
|
- build-*/meson-logs
|
|
|
|
- prefix-*
|
2021-03-25 09:30:14 +00:00
|
|
|
|
2024-03-31 12:39:00 +00:00
|
|
|
build_on_fedora_html_docs:
|
|
|
|
extends:
|
|
|
|
- .build_on_fedora
|
|
|
|
variables:
|
|
|
|
MESON_OPTIONS: >-
|
|
|
|
-Ddocs=enabled
|
|
|
|
-Dman=enabled
|
|
|
|
-Ddoc-prefix-value=/usr
|
|
|
|
-Ddoc-sysconfdir-value=/etc
|
|
|
|
-Dinstalled_tests=enabled
|
|
|
|
-Dsystemd-system-service=enabled
|
|
|
|
-Dbluez5-backend-hsphfpd=enabled
|
|
|
|
-Daudiotestsrc=enabled
|
|
|
|
-Dtest=enabled
|
|
|
|
-Dvideotestsrc=enabled
|
|
|
|
-Dvolume=enabled
|
|
|
|
-Dvulkan=enabled
|
|
|
|
-Dsdl2=enabled
|
|
|
|
-Dsndfile=enabled
|
|
|
|
-Dsession-managers=[]
|
|
|
|
before_script:
|
|
|
|
- git fetch origin 1.0 master
|
|
|
|
- git branch -f 1.0 origin/1.0
|
|
|
|
- git branch -f master origin/master
|
|
|
|
- git clone -b 1.0 . branch-1.0
|
|
|
|
- git clone -b master . branch-master
|
|
|
|
- !reference [.build, before_script]
|
|
|
|
script:
|
|
|
|
- cd branch-1.0
|
|
|
|
- meson setup builddir $MESON_OPTIONS
|
|
|
|
- meson compile -C builddir doc/pipewire-docs
|
|
|
|
- cd ../branch-master
|
|
|
|
- meson setup builddir $MESON_OPTIONS
|
|
|
|
- meson compile -C builddir doc/pipewire-docs
|
|
|
|
artifacts:
|
|
|
|
name: pipewire-$CI_COMMIT_SHA
|
|
|
|
when: always
|
|
|
|
paths:
|
|
|
|
- branch-*/builddir/meson-logs
|
|
|
|
- branch-*/builddir/doc/html
|
2024-04-05 14:57:55 +00:00
|
|
|
rules:
|
|
|
|
- !reference [pages, rules]
|
2024-03-31 12:39:00 +00:00
|
|
|
|
2022-01-28 10:16:37 +00:00
|
|
|
build_on_alpine:
|
|
|
|
extends:
|
|
|
|
- .alpine
|
|
|
|
- .not_coverity
|
|
|
|
- .fdo.distribution-image@alpine
|
|
|
|
- .build
|
|
|
|
stage: build
|
2022-10-18 13:14:14 +00:00
|
|
|
variables:
|
2023-11-22 10:26:16 +00:00
|
|
|
MESON_OPTIONS: "-Dsession-managers=[] -Dsnap=disabled"
|
2022-01-28 10:16:37 +00:00
|
|
|
|
2022-01-27 04:42:47 +00:00
|
|
|
# build with all auto() options enabled
|
|
|
|
build_all:
|
|
|
|
extends:
|
|
|
|
- .build_on_fedora
|
|
|
|
variables:
|
2022-06-16 07:56:52 +00:00
|
|
|
# Fedora doesn't have libfreeaptx, lc3plus, lc3, or roc
|
2022-01-27 04:42:47 +00:00
|
|
|
# libcamera has no stable API, so let's not chase that target
|
2022-10-18 13:14:14 +00:00
|
|
|
MESON_OPTIONS: >-
|
|
|
|
-Dauto_features=enabled
|
|
|
|
-Dbluez5-codec-aptx=disabled
|
|
|
|
-Dbluez5-codec-lc3plus=disabled
|
|
|
|
-Dbluez5-codec-lc3=disabled
|
|
|
|
-Droc=disabled
|
|
|
|
-Dlibcamera=disabled
|
|
|
|
-Dsession-managers=[]
|
2023-05-31 16:43:54 +00:00
|
|
|
-Dc_args=['-UFASTPATH']
|
|
|
|
-Dcpp_args=['-UFASTPATH']
|
2023-11-22 10:26:16 +00:00
|
|
|
-Dsnap=disabled
|
2022-01-27 04:42:47 +00:00
|
|
|
parallel:
|
|
|
|
matrix:
|
|
|
|
- CC: [gcc, clang]
|
|
|
|
|
2021-04-14 00:21:58 +00:00
|
|
|
# build with all options on auto() or their default values
|
|
|
|
build_with_no_commandline_options:
|
|
|
|
extends:
|
2021-04-15 03:27:06 +00:00
|
|
|
- .build_on_fedora
|
2021-04-14 00:21:58 +00:00
|
|
|
variables:
|
2023-11-22 10:26:16 +00:00
|
|
|
MESON_OPTIONS: "-Dsession-managers=[] -Dsnap=disabled"
|
2021-10-12 00:01:18 +00:00
|
|
|
parallel:
|
|
|
|
matrix:
|
|
|
|
- CC: [gcc, clang]
|
2021-04-14 00:21:58 +00:00
|
|
|
|
|
|
|
# build with a set of options enabled or disabled
|
|
|
|
build_with_custom_options:
|
|
|
|
extends:
|
2021-04-15 03:27:06 +00:00
|
|
|
- .build_on_fedora
|
2021-04-14 00:21:58 +00:00
|
|
|
parallel:
|
|
|
|
matrix:
|
|
|
|
- MESON_OPTION: [docs, installed_tests, systemd-system-service, bluez5-backend-hsphfpd,
|
|
|
|
audiotestsrc, test, videotestsrc, volume, vulkan, sdl2, sndfile]
|
|
|
|
MESON_OPTION_VALUE: [enabled, disabled]
|
|
|
|
script:
|
|
|
|
- echo "Building with -D$MESON_OPTION=$MESON_OPTION_VALUE"
|
2023-03-09 22:32:53 +00:00
|
|
|
- meson setup "$BUILD_DIR" --prefix="$PREFIX" "-D$MESON_OPTION=$MESON_OPTION_VALUE" -Dsession-managers=[]
|
2023-03-09 22:48:47 +00:00
|
|
|
- meson compile -C "$BUILD_DIR" $COMPILE_ARGS
|
2023-03-09 22:41:09 +00:00
|
|
|
- meson test -C "$BUILD_DIR" --no-rebuild
|
2021-04-14 00:21:58 +00:00
|
|
|
|
2023-03-09 22:14:38 +00:00
|
|
|
build_with_asan_ubsan:
|
|
|
|
extends:
|
|
|
|
- .build_on_fedora
|
|
|
|
script:
|
|
|
|
- echo "Building with ASan and UBSan"
|
|
|
|
- meson setup "$BUILD_DIR" --prefix="$PREFIX" -D debug=true -D optimization=g -D b_sanitize=address,undefined -D session-managers=[]
|
|
|
|
- meson compile -C "$BUILD_DIR" $COMPILE_ARGS
|
2023-10-15 16:43:06 +00:00
|
|
|
- env UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 meson test -C "$BUILD_DIR" --no-rebuild
|
2023-03-09 22:14:38 +00:00
|
|
|
|
2021-07-26 23:44:12 +00:00
|
|
|
# A release build with NDEBUG, all options on auto() but tests explicitly
|
|
|
|
# enabled. This should show issues with tests failing due to different
|
|
|
|
# optimization or relying on assert.
|
|
|
|
build_release:
|
|
|
|
extends:
|
|
|
|
- .build_on_fedora
|
|
|
|
variables:
|
2023-11-22 10:26:16 +00:00
|
|
|
MESON_OPTIONS: "-Dtest=enabled -Dbuildtype=release -Db_ndebug=true -Dsession-managers=[] -Dsnap=disabled"
|
2021-10-12 00:01:18 +00:00
|
|
|
parallel:
|
|
|
|
matrix:
|
|
|
|
- CC: [gcc, clang]
|
2021-07-26 23:44:12 +00:00
|
|
|
|
2021-10-17 22:18:07 +00:00
|
|
|
build_session_managers:
|
|
|
|
extends:
|
|
|
|
- .build_on_fedora
|
|
|
|
script:
|
|
|
|
- echo "Building with meson options $MESON_OPTIONS"
|
2023-03-09 22:32:53 +00:00
|
|
|
- meson setup "$BUILD_DIR" --prefix="$PREFIX" $MESON_OPTIONS
|
2023-03-09 22:48:47 +00:00
|
|
|
- meson compile -C "$BUILD_DIR" $COMPILE_ARGS
|
2023-03-09 22:43:16 +00:00
|
|
|
- meson install -C "$BUILD_DIR" --no-rebuild
|
2021-10-17 22:18:07 +00:00
|
|
|
variables:
|
2023-11-22 10:26:16 +00:00
|
|
|
MESON_OPTIONS: "-Dsession-managers=$SESSION_MANAGERS -Dsnap=disabled"
|
2021-10-17 22:18:07 +00:00
|
|
|
parallel:
|
|
|
|
matrix:
|
|
|
|
- SESSION_MANAGERS: ["[]", "wireplumber", "media-session", "media-session,wireplumber", "wireplumber,media-session" ]
|
|
|
|
allow_failure: true
|
|
|
|
|
2021-10-26 03:13:58 +00:00
|
|
|
build_meson_prerelease:
|
|
|
|
extends:
|
|
|
|
- .build_on_fedora
|
|
|
|
script:
|
2023-04-18 08:21:24 +00:00
|
|
|
- dnf remove --assumeyes meson
|
2021-10-26 03:13:58 +00:00
|
|
|
- pip3 install --upgrade --pre meson
|
|
|
|
- echo "Building with meson options $MESON_OPTIONS"
|
2023-03-09 22:32:53 +00:00
|
|
|
- meson setup "$BUILD_DIR" --prefix="$PREFIX" $MESON_OPTIONS
|
2023-03-09 22:48:47 +00:00
|
|
|
- meson compile -C "$BUILD_DIR" $COMPILE_ARGS
|
2023-03-09 22:43:16 +00:00
|
|
|
- meson install -C "$BUILD_DIR" --no-rebuild
|
2021-10-26 03:13:58 +00:00
|
|
|
variables:
|
2023-11-22 10:26:16 +00:00
|
|
|
MESON_OPTIONS: "-Dsession-managers=wireplumber,media-session -Dsnap=disabled"
|
2021-10-26 03:13:58 +00:00
|
|
|
allow_failure: true
|
|
|
|
|
2021-10-26 03:31:05 +00:00
|
|
|
build_meson_exact_release:
|
|
|
|
extends:
|
|
|
|
- .build_on_fedora
|
|
|
|
script:
|
|
|
|
- meson_version=$(head -n 5 meson.build | grep 'meson_version' | sed -e 's/.*\([0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/')
|
|
|
|
- echo "Requiring meson version $meson_version"
|
|
|
|
- test -n "$meson_version" || (echo "Meson version parser failed" && exit 1)
|
2023-04-18 08:21:24 +00:00
|
|
|
- dnf remove --assumeyes meson
|
|
|
|
# - pip3 uninstall --yes meson
|
2021-10-26 03:31:05 +00:00
|
|
|
- pip3 install "meson==$meson_version"
|
|
|
|
- echo "Building with meson options $MESON_OPTIONS"
|
2023-03-09 22:32:53 +00:00
|
|
|
- meson setup "$BUILD_DIR" --prefix="$PREFIX" $MESON_OPTIONS
|
2023-03-09 22:48:47 +00:00
|
|
|
- meson compile -C "$BUILD_DIR" $COMPILE_ARGS
|
2023-03-09 22:43:16 +00:00
|
|
|
- meson install -C "$BUILD_DIR" --no-rebuild
|
2021-10-26 03:31:05 +00:00
|
|
|
variables:
|
2023-11-22 10:26:16 +00:00
|
|
|
MESON_OPTIONS: "-Dsession-managers=[] -Dsnap=disabled"
|
2021-10-26 03:31:05 +00:00
|
|
|
|
2021-07-07 02:55:03 +00:00
|
|
|
valgrind:
|
|
|
|
extends:
|
|
|
|
- .build_on_fedora
|
|
|
|
script:
|
2021-10-17 22:28:04 +00:00
|
|
|
- echo "Building with meson options $MESON_OPTIONS"
|
2023-03-09 22:32:53 +00:00
|
|
|
- meson setup "$BUILD_DIR" --prefix="$PREFIX" $MESON_OPTIONS
|
2021-07-07 02:55:03 +00:00
|
|
|
- meson test -C "$BUILD_DIR" --setup=valgrind
|
2022-10-18 13:14:14 +00:00
|
|
|
variables:
|
|
|
|
MESON_OPTIONS: "-Dsession-managers=[]"
|
2021-07-07 02:55:03 +00:00
|
|
|
|
2021-03-25 09:30:14 +00:00
|
|
|
build_with_coverity:
|
|
|
|
extends:
|
|
|
|
- .fedora
|
|
|
|
- .coverity
|
|
|
|
- .fdo.suffixed-image@fedora
|
|
|
|
- .build
|
|
|
|
stage: analysis
|
|
|
|
script:
|
|
|
|
- export PATH=/opt/coverity/bin:$PATH
|
2023-03-09 22:32:53 +00:00
|
|
|
- meson setup "$BUILD_DIR" --prefix="$PREFIX"
|
2021-03-25 09:30:14 +00:00
|
|
|
-Ddocs=disabled
|
|
|
|
-Dbluez5-backend-hsphfpd=enabled
|
|
|
|
-Daudiotestsrc=enabled
|
|
|
|
-Dtest=enabled
|
|
|
|
-Dvideotestsrc=enabled
|
|
|
|
-Dvolume=enabled
|
|
|
|
-Dvulkan=enabled
|
|
|
|
-Dsdl2=enabled
|
|
|
|
-Dsndfile=enabled
|
2022-10-18 13:14:14 +00:00
|
|
|
-Dsession-managers=[]
|
2021-09-22 12:07:10 +00:00
|
|
|
- cov-configure --config coverity_conf.xml
|
|
|
|
--comptype gcc --compiler cc --template
|
|
|
|
--xml-option=append_arg@C:--ppp_translator
|
|
|
|
--xml-option=append_arg@C:"replace/_sd_deprecated_\s+=/ ="
|
|
|
|
--xml-option=append_arg@C:--ppp_translator
|
|
|
|
--xml-option=append_arg@C:"replace/GLIB_(DEPRECATED|AVAILABLE)_ENUMERATOR_IN_\d_\d\d(_FOR\(\w+\)|)\s+=/ ="
|
|
|
|
--xml-option=append_arg@C:--ppp_translator
|
|
|
|
--xml-option=append_arg@C:"replace/(__has_builtin|_GLIBCXX_HAS_BUILTIN)\(\w+\)/1"
|
2023-03-09 22:48:47 +00:00
|
|
|
- cov-build --dir cov-int --config coverity_conf.xml meson compile -C "$BUILD_DIR" $COMPILE_ARGS
|
2021-03-25 09:30:14 +00:00
|
|
|
- tar czf cov-int.tar.gz cov-int
|
|
|
|
- curl https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME
|
|
|
|
--form token=$COVERITY_SCAN_TOKEN --form email=$GITLAB_USER_EMAIL
|
|
|
|
--form file=@cov-int.tar.gz --form version="`git describe --tags`"
|
|
|
|
--form description="`git describe --tags` / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID "
|
|
|
|
artifacts:
|
|
|
|
name: pipewire-coverity-$CI_COMMIT_SHA
|
|
|
|
when: always
|
|
|
|
paths:
|
|
|
|
- build-*/meson-logs
|
|
|
|
- cov-int/build-log.txt
|
2020-05-19 07:05:53 +00:00
|
|
|
|
2021-05-09 22:34:11 +00:00
|
|
|
shellcheck:
|
|
|
|
extends:
|
|
|
|
- .build_on_fedora
|
|
|
|
stage: analysis
|
2023-08-29 14:49:01 +00:00
|
|
|
variables:
|
|
|
|
MESON_OPTIONS: >-
|
|
|
|
-Dpipewire-v4l2=enabled
|
|
|
|
-Dpipewire-jack=enabled
|
2021-05-09 22:34:11 +00:00
|
|
|
script:
|
2023-08-29 14:49:01 +00:00
|
|
|
- echo "Configuring with meson options $MESON_OPTIONS"
|
|
|
|
- meson setup "$BUILD_DIR" --prefix="$PREFIX" $MESON_OPTIONS
|
|
|
|
- shellcheck $(git ls-files '*.sh')
|
|
|
|
- shellcheck $(grep -rl "#\!/.*bin/.*sh" "$BUILD_DIR")
|
2021-05-09 22:34:11 +00:00
|
|
|
|
2021-07-14 05:41:58 +00:00
|
|
|
spellcheck:
|
|
|
|
extends:
|
|
|
|
- .build_on_fedora
|
|
|
|
stage: analysis
|
|
|
|
script:
|
|
|
|
- git ls-files | grep -v .gitlab-ci.yml | xargs -d '\n' sed -i 's/Pipewire/PipeWire/g'
|
|
|
|
- git diff --exit-code || (echo "Please fix the above spelling mistakes" && exit 1)
|
|
|
|
|
2021-09-06 10:02:36 +00:00
|
|
|
doccheck:
|
|
|
|
extends:
|
|
|
|
- .build_on_fedora
|
|
|
|
stage: analysis
|
|
|
|
script:
|
|
|
|
# Check that each pipewire module has a \subpage entry
|
2024-04-05 14:57:31 +00:00
|
|
|
- git grep -h -o -e "\\\page page_module_\w\+" | cut -f2 -d ' ' > pipewire_module_pages
|
2021-09-06 10:02:36 +00:00
|
|
|
- cat pipewire_module_pages
|
|
|
|
- |
|
|
|
|
for page in $(cat pipewire_module_pages); do
|
|
|
|
git grep -q -e "\\\subpage $page" || (echo "\\page $page is missing \\subpage entry in doc/pipewire-modules.dox" && false)
|
|
|
|
done
|
|
|
|
|
2022-10-18 13:57:45 +00:00
|
|
|
check_missing_headers:
|
|
|
|
extends:
|
|
|
|
- .fedora
|
|
|
|
- .not_coverity
|
|
|
|
- .fdo.distribution-image@fedora
|
|
|
|
stage: analysis
|
|
|
|
dependencies:
|
|
|
|
- build_on_fedora
|
|
|
|
script:
|
|
|
|
- export PREFIX=`find -name prefix-*`
|
|
|
|
- ./.gitlab/ci/check_missing_headers.sh
|
|
|
|
|
2020-05-19 07:05:53 +00:00
|
|
|
pages:
|
2021-03-25 09:30:14 +00:00
|
|
|
extends:
|
|
|
|
- .not_coverity
|
2020-05-19 07:05:53 +00:00
|
|
|
stage: pages
|
|
|
|
dependencies:
|
2024-03-31 12:39:00 +00:00
|
|
|
- build_on_fedora_html_docs
|
2020-05-19 07:05:53 +00:00
|
|
|
script:
|
2024-03-31 12:39:00 +00:00
|
|
|
- mkdir public public/devel
|
|
|
|
- cp -R branch-1.0/builddir/doc/html/* public/
|
|
|
|
- cp -R branch-master/builddir/doc/html/* public/devel/
|
2020-05-19 07:05:53 +00:00
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- public
|
2024-04-05 15:24:51 +00:00
|
|
|
rules:
|
|
|
|
- if: $CI_COMMIT_BRANCH == 'master'
|
|
|
|
- if: $CI_COMMIT_BRANCH == '1.0'
|