+# gstreamer-full:
+gstreamer-full static build:
+ extends: '.build fedora x86_64'
+ stage: 'build'
+ variables:
+ MESON_ARGS: >
+ --default-library=static
+ -Ddoc=disabled
+ $MESON_GST_WERROR
+
+ script:
+ - *build
+ - meson test -C build -v test-gst-full
+ artifacts:
+ expire_in: "7 days"
+ when: "always"
+ paths:
+ - 'meson-logs/'
+
+gstreamer-full-minimal static build:
+ extends: 'gstreamer-full static build'
+ stage: 'build'
+ variables:
+ MESON_ARGS: >
+ --default-library=static
+ -Ddoc=disabled
+ -Dgstreamer:gst_debug=false
+ -Dauto_features=disabled
+ -Dgstreamer:check=enabled
+ -Dtests=enabled
+ -Dgst-plugins-base:alsa=enabled
+ -Dgst-plugins-base:typefind=enabled
+ -Dgst-plugins-base:pbtypes=enabled
+ -Dgst-full-elements=coreelements:filesrc,fakesink,identity,input-selector
+ -Dgst-full-typefind-functions=typefindfunctions:wav,flv
+ -Dgst-full-device-providers=alsa:alsadeviceprovider
+ -Dgst-full-dynamic-types=pbtypes:video_multiview_flagset
+ $MESON_GST_WERROR
+
+ script:
+ - *build
+ - meson test -C build -v test-gst-full
+ - meson test -C build test-gst-full-features --test-args "-e filesrc,identity,fakesink -E filesink,capsfilter -t audio/x-wav -T video/vivo -d alsadeviceprovider -D v4l2deviceprovider -l GstVideoMultiviewFlagsSet"
+ - strip build/libgstreamer-full-1.0.so
+ - ls -l build/libgstreamer-full-1.0.so
+ artifacts:
+ expire_in: "7 days"
+ when: "always"
+ paths:
+ - 'meson-logs/'
+
+# Valgrind
+.valgrind fedora x86_64:
+ extends: '.test fedora x86_64'
+ stage: 'test'
+ variables:
+ EXTRA_VALIDATE_ARGS: "--valgrind"
+
+valgrind core:
+ extends: '.valgrind fedora x86_64'
+ variables:
+ TEST_SUITE: "check.gstreamer\\..*"
+ rules:
+ - changes:
+ - "*"
+ - scripts/*
+ - ci/**/*
+ - subprojects/gst-devtools/**/*
+ - subprojects/gstreamer/**/*
+
+valgrind base:
+ extends: '.valgrind fedora x86_64'
+ variables:
+ TEST_SUITE: "check.gst-plugins-base\\..*"
+ rules:
+ - changes:
+ - "*"
+ - scripts/*
+ - ci//**/*
+ - subprojects/gst-devtools/**/*
+ - subprojects/gstreamer/**/*
+ - subprojects/gst-plugins-base/**/*
+
+valgrind good:
+ extends: '.valgrind fedora x86_64'
+ variables:
+ TEST_SUITE: "check.gst-plugins-good\\..*"
+ # take longer time due to splitmux unit test
+ TIMEOUT_FACTOR: "4"
+ rules:
+ - changes:
+ - "*"
+ - scripts/*
+ - ci/**/*
+ - subprojects/gst-devtools/**/*
+ - subprojects/gstreamer/**/*
+ - subprojects/gst-plugins-base/**/*
+ - subprojects/gst-plugins-good/**/*
+
+valgrind ugly:
+ extends: '.valgrind fedora x86_64'
+ variables:
+ TEST_SUITE: "check.gst-plugins-ugly\\..*"
+ rules:
+ - changes:
+ - "*"
+ - scripts/*
+ - ci/**/*
+ - subprojects/gst-devtools/**/*
+ - subprojects/gstreamer/**/*
+ - subprojects/gst-plugins-base/**/*
+ - subprojects/gst-plugins-good/**/*
+ - subprojects/gst-plugins-ugly/**/*
+
+valgrind bad:
+ extends: '.valgrind fedora x86_64'
+ variables:
+ TEST_SUITE: "check.gst-plugins-bad\\..*"
+ rules:
+ - changes:
+ - "*"
+ - scripts/*
+ - ci/**/*
+ - subprojects/gst-devtools/**/*
+ - subprojects/gstreamer/**/*
+ - subprojects/gst-plugins-base/**/*
+ - subprojects/gst-plugins-good/**/*
+ - subprojects/gst-plugins-bad/**/*
+
+valgrind ges:
+ extends: '.valgrind fedora x86_64'
+ variables:
+ TEST_SUITE: "check.gst-editing-services\\..*"
+ rules:
+ - changes:
+ - "*"
+ - scripts/*
+ - ci/**/*
+ - subprojects/gst-devtools/**/*
+ - subprojects/gstreamer/**/*
+ - subprojects/gst-plugins-base/**/*
+ - subprojects/gst-plugins-good/**/*
+ - subprojects/gst-plugins-bad/**/*
+ - subprojects/gst-editing-services/**/*
+ - subprojects/gst-python/**/*
+
+# ---- Integration ----- #
+
+.documentation:
+ image: $FEDORA_DOCS_IMAGE
+ extends:
+ - '.build_ccache_vars'
+ variables:
+ MESON_ARGS: *simple_build
+ MESON_BUILDTYPE_ARGS: "-Ddoc=enabled"
+ CI_ARTIFACTS_URL: "${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/"
+ script:
+ # FIXME: should rebuild the image with newer versions!
+ - pip3 install --upgrade hotdoc
+ - pip3 install --upgrade meson
+ - *build
+ - ./gst-env.py ninja -C build/ plugins_doc_caches
+ # Ignore modifications to wrap files made by meson
+ - git checkout subprojects/*.wrap
+ - ./ci/scripts/check-documentation-diff.py
+ - ./gst-env.py hotdoc run --conf-file=build/subprojects/gst-docs/GStreamer-doc.json --fatal-warnings
+ - mv build/subprojects/gst-docs/GStreamer-doc/html documentation/
+
+ artifacts:
+ when: always
+ expire_in: "7 days"
+ paths:
+ - documentation/
+ - plugins-cache-diffs/
+
+#
+# This jobs runs in gstreamer namespace when after the merge into main branch.
+# The produced artifact is later used to automatically update the web page.
+#
+documentation:
+ stage: integrate
+ extends:
+ - '.documentation'
+ needs: []
+ rules:
+ - if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == "main"'
+
+#
+# This job is run in users namespace to validate documentation before merging
+# MR.
+#
+build documentation:
+ extends:
+ - '.documentation'
+ stage: build
+ needs:
+ - "trigger"
+ rules:
+ # Never run post merge, we have the `documentation` always running for that
+ - if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == $GST_UPSTREAM_BRANCH'
+ when: never
+ - changes:
+ - .gitlab-ci.yml
+ - ci/gitlab/*.py
+ - subprojects/*.wrap
+ - subprojects/gst-docs/**/*
+ - subprojects/gst-devtools/**/*
+ - subprojects/gst-editing-services/**/*
+ - subprojects/gst-libav/**/*
+ - subprojects/gst-omx/**/*
+ - subprojects/gst-plugins-bad/**/*
+ - subprojects/gst-plugins-base/**/*
+ - subprojects/gst-plugins-good/**/*
+ - subprojects/gst-plugins-ugly/**/*
+ - subprojects/gstreamer/**/*
+ - subprojects/gstreamer-vaapi/**/*
+ - subprojects/gst-rtsp-server/**/*
+
+# FIXME: Using trigger: causes permission issues, workaround using old REST API.
+# https://gitlab.com/gitlab-org/gitlab/-/issues/341737
+cerbero trigger:
+ stage: build
+ timeout: '3h'
+ tags:
+ - placeholder-job
+ extends:
+ - '.fedora image'
+ - '.fdo.suffixed-image@fedora'
+ needs:
+ - "fedora amd64 docker"
+ script:
+ - ci/gitlab/trigger_cerbero_pipeline.py
+
+ rules:
+ # Never run post merge
+ - if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == $GST_UPSTREAM_BRANCH'
+ when: never
+ - changes:
+ - .gitlab-ci.yml
+ - ci/gitlab/*.py
+ - subprojects/gst-devtools/**/*
+ - subprojects/gst-editing-services/**/*
+ - subprojects/gst-libav/**/*
+ - subprojects/gst-plugins-bad/**/*
+ - subprojects/gst-plugins-base/**/*
+ - subprojects/gst-plugins-good/**/*
+ - subprojects/gst-plugins-ugly/**/*
+ - subprojects/gst-python/**/*
+ - subprojects/gstreamer/**/*
+ - subprojects/gst-rtsp-server/**/*
+ - subprojects/gst-examples/**/*