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
|
|
|
|
2021-03-25 09:27:49 +00:00
|
|
|
# ci-templates as of March 19th 2021
|
|
|
|
.templates_sha: &templates_sha 290b79e0e78eab67a83766f4e9691be554fc4afd
|
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'
|
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
|
2021-09-03 07:16:48 +00:00
|
|
|
FDO_DISTRIBUTION_TAG: '2021-09-03.0'
|
2021-03-25 09:27:49 +00:00
|
|
|
FDO_DISTRIBUTION_VERSION: '33'
|
2020-05-19 06:29:04 +00:00
|
|
|
FDO_DISTRIBUTION_PACKAGES: >-
|
2019-11-21 11:21:40 +00:00
|
|
|
alsa-lib-devel
|
|
|
|
bluez-libs-devel
|
|
|
|
dbus-devel
|
|
|
|
doxygen
|
|
|
|
findutils
|
|
|
|
gcc
|
|
|
|
git
|
|
|
|
glib-devel
|
|
|
|
graphviz
|
|
|
|
gstreamer1-devel
|
|
|
|
gstreamer1-plugins-base-devel
|
|
|
|
jack-audio-connection-kit-devel
|
2021-05-09 22:27:20 +00:00
|
|
|
libsndfile-devel
|
2019-11-21 11:21:40 +00:00
|
|
|
libv4l-devel
|
|
|
|
libva-devel
|
|
|
|
libX11-devel
|
|
|
|
pulseaudio-libs-devel
|
2021-09-03 07:16:48 +00:00
|
|
|
python3-docutils
|
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
|
|
|
|
python3-pip
|
|
|
|
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
|
2021-09-03 07:16:48 +00:00
|
|
|
FDO_DISTRIBUTION_TAG: '2021-09-03.0'
|
2021-06-10 10:28:41 +00:00
|
|
|
FDO_DISTRIBUTION_VERSION: '20.04'
|
|
|
|
FDO_DISTRIBUTION_PACKAGES: >-
|
|
|
|
debhelper-compat
|
|
|
|
findutils
|
|
|
|
git
|
|
|
|
libasound2-dev
|
|
|
|
libavcodec-dev
|
|
|
|
libavfilter-dev
|
|
|
|
libavformat-dev
|
|
|
|
libdbus-1-dev
|
|
|
|
libglib2.0-dev
|
|
|
|
libgstreamer1.0-dev
|
|
|
|
libgstreamer-plugins-base1.0-dev
|
|
|
|
libsbc-dev
|
|
|
|
libsdl2-dev
|
|
|
|
libudev-dev
|
|
|
|
libva-dev
|
|
|
|
libv4l-dev
|
|
|
|
libx11-dev
|
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
|
2021-06-18 15:06:28 +00:00
|
|
|
python3-pip
|
|
|
|
FDO_DISTRIBUTION_EXEC: >-
|
|
|
|
pip3 install meson
|
2021-06-10 10:28:41 +00:00
|
|
|
|
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 ;
|
|
|
|
curl -o /tmp/cov-analysis-linux64.tgz https://scan.coverity.com/download/linux64
|
|
|
|
--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
|
|
|
|
only:
|
|
|
|
variables:
|
|
|
|
- $COVERITY
|
|
|
|
|
|
|
|
.not_coverity:
|
|
|
|
except:
|
|
|
|
variables:
|
|
|
|
- $COVERITY
|
|
|
|
|
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)"
|
2019-11-03 14:58:48 +00:00
|
|
|
script:
|
2021-04-14 00:06:33 +00:00
|
|
|
- echo "Building with $MESON_OPTIONS"
|
|
|
|
- meson "$BUILD_DIR" . --prefix="$PREFIX" $MESON_OPTIONS
|
2020-05-19 06:29:04 +00:00
|
|
|
- ninja -C "$BUILD_DIR"
|
|
|
|
- ninja -C "$BUILD_DIR" test
|
|
|
|
- ninja -C "$BUILD_DIR" install
|
|
|
|
- ./check_missing_headers.sh
|
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
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
-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
|
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
|
|
|
|
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:
|
|
|
|
MESON_OPTIONS: ""
|
|
|
|
|
|
|
|
# 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"
|
|
|
|
- meson "$BUILD_DIR" . --prefix="$PREFIX" "-D$MESON_OPTION=$MESON_OPTION_VALUE"
|
|
|
|
- ninja -C "$BUILD_DIR"
|
|
|
|
- ninja -C "$BUILD_DIR" test
|
|
|
|
|
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:
|
|
|
|
MESON_OPTIONS: "-Dtest=enabled -Dbuildtype=release -Db_ndebug=true"
|
|
|
|
|
2021-07-07 02:55:03 +00:00
|
|
|
valgrind:
|
|
|
|
extends:
|
|
|
|
- .build_on_fedora
|
|
|
|
script:
|
|
|
|
- echo "Building with $MESON_OPTIONS"
|
|
|
|
- meson "$BUILD_DIR" . --prefix="$PREFIX" $MESON_OPTIONS
|
|
|
|
- meson test -C "$BUILD_DIR" --setup=valgrind
|
|
|
|
|
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
|
|
|
|
- meson "$BUILD_DIR" . --prefix="$PREFIX"
|
|
|
|
-Ddocs=disabled
|
|
|
|
-Dbluez5-backend-hsphfpd=enabled
|
|
|
|
-Daudiotestsrc=enabled
|
|
|
|
-Dtest=enabled
|
|
|
|
-Dvideotestsrc=enabled
|
|
|
|
-Dvolume=enabled
|
|
|
|
-Dvulkan=enabled
|
|
|
|
-Dsdl2=enabled
|
|
|
|
-Dsndfile=enabled
|
|
|
|
- cov-build --dir cov-int ninja -C "$BUILD_DIR"
|
|
|
|
- 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
|
|
|
|
script:
|
|
|
|
- shellcheck $(git grep -l "#\!/.*bin/.*sh")
|
|
|
|
|
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)
|
|
|
|
|
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:
|
|
|
|
- build_on_fedora
|
|
|
|
script:
|
|
|
|
- mkdir public
|
2021-04-15 03:06:49 +00:00
|
|
|
- cp -R prefix-*/share/doc/pipewire/html/* public/
|
2020-05-19 07:05:53 +00:00
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- public
|
|
|
|
only:
|
|
|
|
- master
|