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