- 'integrate'
variables:
+ GIT_DEPTH: 1
+
# Branch to track for modules that have no ref specified in the manifest
GST_UPSTREAM_BRANCH: 'main'
ORC_UPSTREAM_BRANCH: 'master'
# If you are hacking on them or need a them to rebuild, its enough
# to change any part of the string of the image you want.
###
- FEDORA_TAG: '2021-10-05.0'
+ FEDORA_TAG: '2021-12-03.1'
INDENT_TAG: '2021-10-04.0'
WINDOWS_TAG: "2021-10-12.0"
-Drtsp_server=enabled
-Dvaapi=enabled
-Dsharp=disabled
+ -Dgpl=enabled
MESON_GST_WERROR: >
-Dgstreamer:werror=true
# https://docs.gitlab.com/ee/ci/yaml/index.html#switch-between-branch-pipelines-and-merge-request-pipelines
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
+ variables:
+ GIT_FETCH_EXTRA_FLAGS: '--no-tags'
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
when: never
+ - if: '$CI_COMMIT_TAG'
- if: '$CI_COMMIT_BRANCH'
+ variables:
+ GIT_FETCH_EXTRA_FLAGS: '--no-tags'
#
# Global CI policy
trigger:
image: alpine:latest
stage: 'trigger'
+ variables:
+ GIT_STRATEGY: none
script:
- echo "Trigger job done, now running the pipeline."
rules:
FDO_DISTRIBUTION_VERSION: '31'
FDO_REPO_SUFFIX: "$FEDORA_AMD64_SUFFIX"
FDO_DISTRIBUTION_TAG: "$FEDORA_TAG-$GST_UPSTREAM_BRANCH"
- FDO_DISTRIBUTION_EXEC: 'DEFAULT_BRANCH=$GST_UPSTREAM_BRANCH bash ci/docker/fedora/prepare.sh'
+ FDO_DISTRIBUTION_EXEC: 'GIT_BRANCH=$CI_COMMIT_REF_NAME GIT_URL=$CI_REPOSITORY_URL bash ci/docker/fedora/prepare.sh'
fedora amd64 docker:
extends:
# build setup templates
#
.build_template: &build
+ - ci/scripts/handle-subprojects-cache.py subprojects/
+ # Update subprojects to respect `.wrap` content
+ - meson subprojects update --reset
- echo $MESON_ARGS
-
- meson build/ $MESON_ARGS
- ninja -C build/
- ccache --show-stats
timeout: '45min'
variables:
MESON_ARGS: "${DEFAULT_MESON_ARGS} ${MESON_BUILDTYPE_ARGS} ${MESON_GST_WERROR}"
- before_script:
- - export RUSTUP_HOME="/usr/local/rustup"
- - export CARGO_HOME="/usr/local/cargo"
- - export PATH="/usr/local/cargo/bin:$PATH"
-
- - ci/scripts/handle-subprojects-cache.py subprojects/
- # Update subprojects to respect `.wrap` content
- - meson subprojects update --reset
script:
*build
after_script:
variables:
MESON_ARGS: "${DEFAULT_MESON_ARGS} -Dsharp=enabled -Dgstreamer:gst_debug=false -Domx=enabled -Dgst-omx:target=generic ${MESON_BUILDTYPE_ARGS} ${MESON_GST_WERROR}"
-build static fedora x86_64:
- extends: '.build fedora x86_64'
- variables:
- MESON_BUILDTYPE_ARGS: >
- --default-library=static
- -Dintrospection=disabled
- -Ddoc=disabled
- -Dpython=auto
-
-build static nodebug fedora x86_64:
- extends: 'build nodebug fedora x86_64'
- variables:
- MESON_BUILDTYPE_ARGS: >
- --default-library=static
- -Dintrospection=disabled
- -Ddoc=disabled
- -Dpython=auto
-
build clang fedora x86_64:
extends: '.build fedora x86_64'
variables:
when: manual
- changes:
*modules_changes
- before_script:
- - ci/scripts/handle-subprojects-cache.py subprojects/
script:
+ - ci/scripts/handle-subprojects-cache.py subprojects/
# For some reason, options are separated by newline instead of space, so we
# have to replace them first.
- $env:MESON_ARGS = $env:MESON_ARGS.replace("`n"," ")
allow_failure: true
when: 'manual'
script:
- # Make sure powershell exists on errors
+ # Make sure powershell exits on errors
# https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_preference_variables?view=powershell-6
- $ErrorActionPreference = "Stop"
TEST_SUITE: "validate ges"
# gstreamer-full:
-gstreamer-full:
- extends: 'build static fedora x86_64'
- stage: integrate
+gstreamer-full static build:
+ extends: '.build fedora x86_64'
+ stage: 'build'
variables:
MESON_ARGS: >
--default-library=static
-Ddoc=disabled
- -Dgst-editing-services:python=disabled
$MESON_GST_WERROR
- rules:
- # If this matches, it means the pipeline is running against either the main
- # or a stable branch, so make it manual
- - if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == $GST_UPSTREAM_BRANCH'
- when: manual
- - changes:
- - "*"
- - scripts/*
- - ci/**/*
script:
- *build
paths:
- 'meson-logs/'
-gstreamer-full-minimal:
- extends: 'build static fedora x86_64'
- stage: integrate
+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
valgrind core:
extends: '.valgrind fedora x86_64'
- parallel: 2
variables:
TEST_SUITE: "check.gstreamer\\..*"
- EXTRA_VALIDATE_ARGS: "--valgrind --parts=${CI_NODE_TOTAL} --part-index=${CI_NODE_INDEX}"
rules:
- changes:
- "*"
valgrind base:
extends: '.valgrind fedora x86_64'
- parallel: 4
variables:
TEST_SUITE: "check.gst-plugins-base\\..*"
- EXTRA_VALIDATE_ARGS: "--valgrind --parts=${CI_NODE_TOTAL} --part-index=${CI_NODE_INDEX}"
rules:
- changes:
- "*"
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/