mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-05-13 23:50:29 -04:00
ci: run bluetooth VM tests
The bluetooth VM tests require building BlueZ (specific version is better than relying on FDO image version) and building pytest-bluezenv. Build them and cache the results.
This commit is contained in:
parent
d12367e10e
commit
1fc7ec2e3f
2 changed files with 86 additions and 5 deletions
|
|
@ -17,6 +17,9 @@ stages:
|
|||
|
||||
variables:
|
||||
FDO_UPSTREAM_REPO: 'pipewire/pipewire'
|
||||
BLUEZ_COMMIT: '7cd27f4f66aa88194fbc1565bc13f24405acacd8'
|
||||
PYTEST_BLUEZENV_VERSION: '0.1.2'
|
||||
BLUEZENV_BZIMAGE: 'https://github.com/pv/bluez-test-functional-kernel/releases/download/2026-05-08.1/bzImage-v7.0-cfg3ed20edd'
|
||||
|
||||
# ci-templates as of Mar 25th 2024
|
||||
.templates_sha: &templates_sha ef5e4669b7500834a17ffe9277e15fbb6d977fff
|
||||
|
|
@ -38,13 +41,18 @@ include:
|
|||
.fedora:
|
||||
variables:
|
||||
# Update this tag when you want to trigger a rebuild
|
||||
FDO_DISTRIBUTION_TAG: '2025-10-22.0'
|
||||
FDO_DISTRIBUTION_VERSION: '42'
|
||||
FDO_DISTRIBUTION_TAG: '2026-05-09.0'
|
||||
FDO_DISTRIBUTION_VERSION: '44'
|
||||
FDO_DISTRIBUTION_PACKAGES: >-
|
||||
alsa-lib-devel
|
||||
autoconf
|
||||
automake
|
||||
avahi-devel
|
||||
bluez-libs-devel
|
||||
chrony
|
||||
clang
|
||||
curl
|
||||
dbus-daemon
|
||||
dbus-devel
|
||||
doxygen
|
||||
fdk-aac-free-devel
|
||||
|
|
@ -62,6 +70,7 @@ include:
|
|||
liblc3-devel
|
||||
libcanberra-devel
|
||||
libebur128-devel
|
||||
libell-devel
|
||||
libffado-devel
|
||||
libldac-devel
|
||||
libmysofa-devel
|
||||
|
|
@ -71,12 +80,23 @@ include:
|
|||
lilv-devel
|
||||
libva-devel
|
||||
libX11-devel
|
||||
libtool
|
||||
make
|
||||
ModemManager-devel
|
||||
meson
|
||||
openssl-devel
|
||||
pulseaudio-libs-devel
|
||||
python3-dbus
|
||||
python3-docutils
|
||||
python3-gobject-devel
|
||||
python3-pexpect
|
||||
python3-pip
|
||||
python3-pytest
|
||||
python3-pytest-rerunfailures
|
||||
python3-pytest-xdist
|
||||
python3-wheel
|
||||
qemu-system-x86
|
||||
readline-devel
|
||||
sbc-devel
|
||||
ShellCheck
|
||||
SDL2-devel
|
||||
|
|
@ -95,7 +115,7 @@ include:
|
|||
fftw-libs-single
|
||||
fftw-devel
|
||||
onnxruntime-devel
|
||||
# Uncommenting the following two lines and disabling the meson entry above
|
||||
# Uncommenting the line below and disabling the meson entry above
|
||||
# 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
|
||||
|
|
@ -103,8 +123,9 @@ include:
|
|||
# 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
|
||||
# FDO_DISTRIBUTION_EXEC: >-
|
||||
# pip3 install meson
|
||||
FDO_DISTRIBUTION_EXEC: >-
|
||||
./.gitlab/ci/setup-fedora-container.sh "$BLUEZ_COMMIT" "$PYTEST_BLUEZENV_VERSION" "$BLUEZENV_BZIMAGE"
|
||||
# && pip3 install meson
|
||||
|
||||
.ubuntu:
|
||||
variables:
|
||||
|
|
@ -451,6 +472,32 @@ build_on_fedora_html_docs:
|
|||
rules:
|
||||
- !reference [pages, rules]
|
||||
|
||||
bluez_tests:
|
||||
tags:
|
||||
- kvm
|
||||
extends:
|
||||
- .build_on_fedora
|
||||
variables:
|
||||
MESON_OPTIONS: >-
|
||||
-Ddocs=disabled
|
||||
-Dman=disabled
|
||||
-Dexamples=disabled
|
||||
-Dtests=disabled
|
||||
-Dgstreamer=disabled
|
||||
-Davahi=disabled
|
||||
-Dbluez5-backend-hsphfpd=enabled
|
||||
-Dsession-managers=wireplumber
|
||||
-Dsnap=disabled
|
||||
-Droc=disabled
|
||||
-Dlibcamera=disabled
|
||||
before_script:
|
||||
- !reference [.build_on_fedora, before_script]
|
||||
- python3 -m pip install /bluez/pytest_bluezenv-*.whl
|
||||
script:
|
||||
- meson setup "$BUILD_DIR" --prefix="$PREFIX" $MESON_OPTIONS
|
||||
- meson compile -C "$BUILD_DIR" $COMPILE_ARGS
|
||||
- meson devenv -C "$BUILD_DIR" -w . python3 -m pytest test --kernel /bluez/bzImage* --bluez-src-dir /bluez -ra -vvv --reruns 1 --vm-timeout 30
|
||||
|
||||
build_on_alpine:
|
||||
extends:
|
||||
- .alpine
|
||||
|
|
|
|||
34
.gitlab/ci/setup-fedora-container.sh
Executable file
34
.gitlab/ci/setup-fedora-container.sh
Executable file
|
|
@ -0,0 +1,34 @@
|
|||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
BLUEZ_COMMIT=$1
|
||||
PYTEST_BLUEZENV_VERSION=$2
|
||||
BZIMAGE_URL=$3
|
||||
|
||||
COMPILE_ARGS=
|
||||
if [ -n "$FDO_CI_CONCURRENT" ]; then
|
||||
COMPILE_ARGS="-j$FDO_CI_CONCURRENT"
|
||||
fi
|
||||
|
||||
# Build BlueZ snapshot for bluetooth VM testing
|
||||
git clone --depth 1 --revision "$BLUEZ_COMMIT" https://github.com/bluez/bluez.git /bluez-build
|
||||
cd /bluez-build
|
||||
./bootstrap
|
||||
./configure --enable-tools --disable-obex
|
||||
# shellcheck disable=SC2086
|
||||
make $COMPILE_ARGS
|
||||
cd /
|
||||
|
||||
# Store bluetooth VM testing tools
|
||||
mkdir /bluez /bluez/client /bluez/tools /bluez/src
|
||||
cp /bluez-build/client/bluetoothctl /bluez/client/
|
||||
cp /bluez-build/tools/btmgmt /bluez/tools/
|
||||
cp /bluez-build/src/bluetoothd /bluez/src/
|
||||
|
||||
cd /bluez
|
||||
python3 -m pip wheel --no-deps "pytest-bluezenv==$PYTEST_BLUEZENV_VERSION"
|
||||
curl -L "$BZIMAGE_URL" -o bzImage
|
||||
cd /
|
||||
|
||||
# Cleanup
|
||||
rm -rf /bluez-build
|
||||
Loading…
Add table
Add a link
Reference in a new issue