mirror of
https://gitlab.freedesktop.org/pipewire/wireplumber.git
synced 2026-01-26 14:13:23 +00:00
112 lines
3.4 KiB
YAML
112 lines
3.4 KiB
YAML
stages:
|
|
- container
|
|
- build
|
|
- pages
|
|
|
|
variables:
|
|
FDO_UPSTREAM_REPO: 'pipewire/wireplumber'
|
|
# change to build against a different tag/commit/branch of pipewire
|
|
PIPEWIRE_HEAD: '0.3.5'
|
|
|
|
# ci-templates as of May 1st 2020
|
|
.templates_sha: &templates_sha 59de540b620c45739871d1a073d76d5521989d11
|
|
|
|
include:
|
|
- project: 'freedesktop/ci-templates'
|
|
ref: *templates_sha
|
|
file: '/templates/fedora.yml'
|
|
|
|
.fedora:
|
|
variables:
|
|
# Update this tag when you want to trigger a rebuild
|
|
FDO_DISTRIBUTION_TAG: '2020-05-18.3'
|
|
FDO_DISTRIBUTION_VERSION: '32'
|
|
# findutils: used by the .build script below
|
|
# cmake: required for cpptoml submodule & hotdoc
|
|
# dbus-devel: required by pipewire
|
|
# dbus-daemon: required by GDBus unit tests
|
|
# libxml, json-glib: required by hotdoc
|
|
FDO_DISTRIBUTION_PACKAGES: >-
|
|
findutils
|
|
gcc
|
|
gcc-c++
|
|
git
|
|
meson
|
|
cmake
|
|
glib2-devel
|
|
gobject-introspection-devel
|
|
dbus-devel
|
|
dbus-daemon
|
|
libxml2-devel
|
|
json-glib-devel
|
|
# build hotdoc via pip, since there is no rpm package and make sure
|
|
# to remove its build-deps afterwards to save space.
|
|
# also install glib2-doc (required to make documentation links to GLib work)
|
|
# manually, to remove the 'tsflags=nodocs' flag that is enabled by default
|
|
# in the fedora docker image
|
|
FDO_DISTRIBUTION_EXEC: >-
|
|
dnf -y install python3-pip make python3-devel flex clang ;
|
|
HOTDOC_BUILD_C_EXTENSION=enabled pip3 install --no-cache-dir hotdoc ;
|
|
rm -rf ~/.cache/pip ;
|
|
dnf -y remove python3-pip make python3-devel flex clang ;
|
|
dnf -y install glib2-doc --setopt='tsflags='
|
|
|
|
.build:
|
|
before_script:
|
|
# setup the environment
|
|
- export BUILD_ID="$CI_JOB_NAME"
|
|
- export PREFIX="$PWD/prefix-$BUILD_ID"
|
|
- export PW_BUILD_DIR="$PWD/build-pipewire-$BUILD_ID"
|
|
# Build pipewire
|
|
# Fedora also ships that, but without the test plugins that we need...
|
|
- git clone --depth=1 --branch="$PIPEWIRE_HEAD"
|
|
https://gitlab.freedesktop.org/pipewire/pipewire.git
|
|
- meson "$PW_BUILD_DIR" pipewire --prefix="$PREFIX"
|
|
-Dpipewire-alsa=false -Dpipewire-pulseaudio=false -Dpipewire-jack=false
|
|
-Dalsa=false -Dv4l2=false -Djack=false -Dbluez5=false -Dvulkan=false
|
|
-Dgstreamer=false -Dsystemd=false
|
|
-Ddocs=false -Dman=false -Dexamples=false -Dpw-cat=false
|
|
-Dvideotestsrc=true -Daudiotestsrc=true -Dtest=true
|
|
- ninja -C "$PW_BUILD_DIR" install
|
|
# misc environment only for wireplumber
|
|
- export WP_BUILD_DIR="$PWD/build-wireplumber-$BUILD_ID"
|
|
- export XDG_RUNTIME_DIR="$(mktemp -p $PWD -d xdg-runtime-XXXXXX)"
|
|
- export PKG_CONFIG_PATH="$(dirname $(find "$PREFIX" -name 'libpipewire-*.pc')):$PKG_CONFIG_PATH"
|
|
script:
|
|
# Build wireplumber
|
|
- meson "$WP_BUILD_DIR" . --prefix="$PREFIX"
|
|
-Dintrospection=enabled -Ddoc=enabled
|
|
- cd "$WP_BUILD_DIR"
|
|
- ninja
|
|
- ninja test
|
|
- ninja install
|
|
artifacts:
|
|
name: wireplumber-$CI_COMMIT_SHA
|
|
when: on_failure
|
|
expire_in: 2 weeks
|
|
paths:
|
|
- build-*/meson-logs
|
|
|
|
container_fedora:
|
|
extends:
|
|
- .fedora
|
|
- .fdo.container-build@fedora
|
|
stage: container
|
|
|
|
build_on_fedora:
|
|
extends:
|
|
- .fedora
|
|
- .fdo.distribution-image@fedora
|
|
- .build
|
|
stage: build
|
|
|
|
pages:
|
|
stage: pages
|
|
dependencies:
|
|
- build_on_fedora
|
|
script:
|
|
- export WP_BUILD_DIR="$PWD/build-wireplumber-build_on_fedora"
|
|
- cp -R $WP_BUILD_DIR/docs/wireplumber-doc/html/* public/
|
|
only:
|
|
- master
|