include: - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/290b79e0e78eab67a83766f4e9691be554fc4afd/templates/ci-fairy.yml" - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/290b79e0e78eab67a83766f4e9691be554fc4afd/templates/fedora.yml' variables: MESON_TEST_TIMEOUT_MULTIPLIER: 3 stages: - review - prepare - build - test - analysis - website .check-template: &check extends: - .fdo.ci-fairy artifacts: expire_in: 1 week paths: - check-junit-report.xml reports: junit: check-junit-report.xml check-commit-log: variables: GIT_DEPTH: "100" stage: review script: - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ; then ci-fairy check-commits --junit-xml=check-junit-report.xml ; else echo "Not a merge request" ; fi <<: *check check-merge-request: variables: GIT_STRATEGY: none stage: review script: - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ; then ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-junit-report.xml ; else echo "Not a merge request" ; fi <<: *check .build-template: &build stage: build script: - meson . build --prefix=/usr -Db_coverage=true - ninja -C build artifacts: expire_in: 1 day paths: - build .gupnpdlna.fedora@common: variables: BASE_TAG: '2021-05-27.1' FDO_UPSTREAM_REPO: GNOME/gupnp-dlna FDO_DISTRIBUTION_PACKAGES: 'clang clang-analyzer gcovr git libasan libubsan python3-gobject python3-pip xmlto gobject-introspection-devel gtk-doc libxml2-devel vala ninja-build gstreamer1-devel gstreamer1-plugins-base-devel' FDO_DISTRIBUTION_EXEC: | dnf clean all && dnf -y install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-34.noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-34.noarch.rpm && dnf -y install gstreamer1-plugins-good gstreamer1-plugins-ugly-free gstreamer1-plugin-openh264 gstreamer1-plugins-bad-free gstreamer1-libav gstreamer1-plugins-bad-freeworld gstreamer1-plugins-ugly && pip3 install meson .gupnpdlna.fedora:34@x86_64: extends: .gupnpdlna.fedora@common variables: FDO_DISTRIBUTION_VERSION: 34 FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}" build-fedora-container@x86_64: extends: - .fdo.container-build@fedora - .gupnpdlna.fedora:34@x86_64 stage: prepare variables: GIT_STRATEGY: none build-fedora@x86_64: extends: - .fdo.distribution-image@fedora - .gupnpdlna.fedora:34@x86_64 needs: - build-fedora-container@x86_64 <<: *build .test-template: &test stage: test variables: G_SLICE: "always-malloc" MALLOC_CHECK_: "3" script: - if [[ x"$GUPNP_DLNA_RUN_MEDIA_TEST" != "x" ]] ; then git clone --depth=1 https://gitlab.gnome.org/GNOME/gupnp-dlna-media.git tests/gupnp-dlna-media ; else echo "Media discoverer tests disabled." ; fi - cd build - | # Remove the many "CI_" variables from the environment. Meson dumps the # whole environment for every failed test, and that gives a whole # screenful of junk each time unless we strip these. unset $(env|grep -o '^CI_[^=]*') env LANG=C.UTF-8 LC_ALL=C.UTF-8 meson test --print-errorlogs ${MESON_TEST_EXTRA_ARGS} after_script: - | echo "Distribution: " echo egrep '^NAME=|^VERSION=' /etc/os-release echo echo "Test suite settings:" echo echo "G_MESSAGES_DEBUG: ${G_MESSAGES_DEBUG}" echo "MESON_TEST_EXTRA_ARGS: ${MESON_TEST_EXTRA_ARGS}" echo echo "These values can be set at https://gitlab.gnome.org/GNOME/gupnp-dlna/pipelines/new" artifacts: expire_in: 1 day when: always paths: - build reports: junit: "build/meson-logs/testlog.junit.xml" test-fedora@x86_64: extends: - .fdo.distribution-image@fedora - .gupnpdlna.fedora:34@x86_64 needs: - build-fedora@x86_64 <<: *test coverage-analysis: extends: - .fdo.distribution-image@fedora - .gupnpdlna.fedora:34@x86_64 stage: analysis allow_failure: true script: - cd build - mkdir -p coveragereport - gcovr --html-details --print-summary --root=.. --exclude=../build --exclude=../docs/reference --exclude=../tests --exclude=../tools --exclude=../examples --output coveragereport/index.html coverage: '/^lines: (\d+\.\d+\%)/' artifacts: when: always paths: - build/coveragereport needs: - test-fedora@x86_64 static-scan: extends: - .fdo.distribution-image@fedora - .gupnpdlna.fedora:34@x86_64 stage: analysis needs: - build-fedora-container@x86_64 script: - meson --buildtype=debug _scan_build - ninja -C _scan_build scan-build artifacts: paths: - _scan_build/meson-logs allow_failure: true pages: extends: - .fdo.distribution-image@fedora - .gupnpdlna.fedora:34@x86_64 stage: website script: - meson doc-build -Dgtk_doc=true - ninja -C doc-build gupnp-dlna-doc gupnp-dlna-gst-doc gupnp-dlna-metadata-doc - mkdir -p public/docs - cp doc/index.html public/docs - mv doc-build/doc/gupnp-dlna/html public/docs/gupnp-dlna - mv doc-build/doc/gupnp-dlna-gst/html public/docs/gupnp-dlna-gst - mv doc-build/doc/gupnp-dlna-metadata/html public/docs/gupnp-dlna-metadata artifacts: paths: - public needs: - build-fedora-container@x86_64 only: - master