mirror of
https://gitlab.freedesktop.org/pipewire/pipewire
synced 2024-07-21 18:26:24 +00:00
![Peter Hutterer](/assets/img/avatar_default.png)
This enables us to have build jobs that set custom meson options instead of always relying on the default set.
179 lines
4.4 KiB
YAML
179 lines
4.4 KiB
YAML
stages:
|
|
- container
|
|
- container_coverity
|
|
- build
|
|
- analysis
|
|
- pages
|
|
|
|
variables:
|
|
FDO_UPSTREAM_REPO: 'pipewire/pipewire'
|
|
|
|
# ci-templates as of March 19th 2021
|
|
.templates_sha: &templates_sha 290b79e0e78eab67a83766f4e9691be554fc4afd
|
|
|
|
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: '2021-03-25.1'
|
|
FDO_DISTRIBUTION_VERSION: '33'
|
|
FDO_DISTRIBUTION_PACKAGES: >-
|
|
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
|
|
libv4l-devel
|
|
libva-devel
|
|
libX11-devel
|
|
meson
|
|
pulseaudio-libs-devel
|
|
sbc-devel
|
|
SDL2-devel
|
|
systemd-devel
|
|
vulkan-loader-devel
|
|
which
|
|
xmltoman
|
|
libsndfile-devel
|
|
|
|
.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: >-
|
|
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 ;
|
|
rm /tmp/cov-analysis-linux64.tgz
|
|
only:
|
|
variables:
|
|
- $COVERITY
|
|
|
|
.not_coverity:
|
|
except:
|
|
variables:
|
|
- $COVERITY
|
|
|
|
.build:
|
|
before_script:
|
|
# setup the environment
|
|
- export BUILD_ID="$CI_JOB_NAME"
|
|
- export PREFIX="$PWD/prefix-$BUILD_ID"
|
|
- export BUILD_DIR="$PWD/build-$BUILD_ID"
|
|
- export XDG_RUNTIME_DIR="$(mktemp -p $PWD -d xdg-runtime-XXXXXX)"
|
|
script:
|
|
- echo "Building with $MESON_OPTIONS"
|
|
- meson "$BUILD_DIR" . --prefix="$PREFIX" $MESON_OPTIONS
|
|
- ninja -C "$BUILD_DIR"
|
|
- ninja -C "$BUILD_DIR" test
|
|
- ninja -C "$BUILD_DIR" install
|
|
- ./check_missing_headers.sh
|
|
|
|
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
|
|
|
|
container_coverity:
|
|
extends:
|
|
- .fedora
|
|
- .coverity
|
|
- .fdo.container-build@fedora
|
|
stage: container_coverity
|
|
variables:
|
|
GIT_STRATEGY: none
|
|
|
|
build_on_fedora:
|
|
extends:
|
|
- .fedora
|
|
- .not_coverity
|
|
- .fdo.distribution-image@fedora
|
|
- .build
|
|
stage: build
|
|
artifacts:
|
|
name: pipewire-$CI_COMMIT_SHA
|
|
when: always
|
|
paths:
|
|
- build-*/meson-logs
|
|
- prefix-*
|
|
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
|
|
|
|
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
|
|
|
|
pages:
|
|
extends:
|
|
- .not_coverity
|
|
stage: pages
|
|
dependencies:
|
|
- build_on_fedora
|
|
script:
|
|
- export PREFIX="$PWD/prefix-build_on_fedora"
|
|
- mkdir public
|
|
- cp -R $PREFIX/share/doc/pipewire/html/* public/
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
only:
|
|
- master
|