libav:avviddec: Add videometa if there is no videometa in output buffer
[platform/upstream/gstreamer.git] / .gitlab-ci.yml
index e6b7439..916e47d 100644 (file)
@@ -14,10 +14,7 @@ include:
   - local: '.gitlab-image-tags.yml'
 
 stages:
-  - 'trigger'
-  - 'build docker'
   - 'preparation'
-  - 'pre-build'
   - 'build'
   - 'test'
   # Use the resulting binaries
@@ -27,9 +24,8 @@ variables:
   GIT_DEPTH: 1
 
   # Branch to track for modules that have no ref specified in the manifest
-  GST_UPSTREAM_BRANCH: 'main'
+  GST_UPSTREAM_BRANCH: '1.22'
 
-  GST_UPSTREAM_REPO: 'gstreamer/gstreamer'
   FDO_UPSTREAM_REPO: 'gstreamer/gstreamer'
 
   FEDORA_AMD64_SUFFIX: 'amd64/fedora'
@@ -37,7 +33,7 @@ variables:
   WINDOWS_AMD64_SUFFIX: 'amd64/windows'
 
   WINDOWS_IMAGE: "$CI_REGISTRY_IMAGE/$WINDOWS_AMD64_SUFFIX:$WINDOWS_TAG-$GST_UPSTREAM_BRANCH"
-  WINDOWS_UPSTREAM_IMAGE: "$CI_REGISTRY/$GST_UPSTREAM_REPO/$WINDOWS_AMD64_SUFFIX:$WINDOWS_TAG-$GST_UPSTREAM_BRANCH"
+  WINDOWS_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$WINDOWS_AMD64_SUFFIX:$WINDOWS_TAG-$GST_UPSTREAM_BRANCH"
 
   MESON_BUILDTYPE_ARGS: --default-library=both
   DEFAULT_MESON_ARGS: >
@@ -104,7 +100,7 @@ default:
 # This is an empty job that is used to trigger the pipeline.
 trigger:
   image: alpine:latest
-  stage: 'trigger'
+  stage: 'preparation'
   variables:
     GIT_STRATEGY: none
   script:
@@ -112,8 +108,9 @@ trigger:
   rules:
     # If the MR is assigned to the Merge bot, trigger the pipeline automatically
     - if: '$CI_MERGE_REQUEST_ASSIGNEES == "gstreamer-merge-bot"'
-    # Require explicit action to trigger tests post merge
-    - if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == $GST_UPSTREAM_BRANCH'
+    # Require explicit action to trigger tests post merge, but we want to
+    # automatically trigger the integratation stage
+    - if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == $GST_UPSTREAM_BRANCH && $CI_JOB_STAGE != "integrate"'
       when: 'manual'
     # When the assignee isn't the merge bot, require an explicit action to trigger the pipeline
     # to avoid wasting CI resources
@@ -132,9 +129,8 @@ fedora amd64 docker:
   extends:
     - '.fedora image'
     - '.fdo.container-build@fedora'
-  stage: 'build docker'
-  needs:
-    - "trigger"
+  stage: 'preparation'
+  needs: []
   tags:
     - 'packet.net'
 
@@ -150,14 +146,12 @@ gst-indent amd64 docker:
   extends:
     - '.gst-indent image'
     - '.fdo.container-build@debian'
-  stage: 'build docker'
+  stage: 'preparation'
   # Do not depend on the trigger, as we want to run indent always
   needs: []
 
 windows amd64 docker:
-  stage: "build docker"
-  needs:
-    - "trigger"
+  stage: "preparation"
   timeout: '3h'
   variables:
     # Unlike the buildah/linux jobs, this file
@@ -209,10 +203,15 @@ gst indent:
 # build setup templates
 #
 .build_template: &build
+  - date -R
   - ci/scripts/handle-subprojects-cache.py subprojects/
+  - date -R
   - echo $MESON_ARGS
+  - date -R
   - meson build/ $MESON_ARGS
+  - date -R
   - ninja -C build/
+  - date -R
   - ccache --show-stats
 
 .build_ccache_vars:
@@ -292,6 +291,7 @@ gst indent:
     - '.fdo.suffixed-image@fedora'
     - '.build'
   needs:
+    - "trigger"
     - "fedora amd64 docker"
   variables:
     MESON_ARGS: *simple_build
@@ -302,6 +302,7 @@ build fedora x86_64:
     - '.fdo.suffixed-image@fedora'
     - '.build fedora x86_64'
   needs:
+    - "trigger"
     - "fedora amd64 docker"
   script:
     - *build
@@ -316,6 +317,7 @@ build nodebug fedora x86_64:
     - '.fdo.suffixed-image@fedora'
     - '.build'
   needs:
+    - "trigger"
     - "fedora amd64 docker"
   variables:
     MESON_ARGS: "${DEFAULT_MESON_ARGS} -Dsharp=enabled -Dgstreamer:gst_debug=false -Domx=enabled -Dgst-omx:target=generic ${MESON_BUILDTYPE_ARGS} ${MESON_GST_WERROR}"
@@ -334,6 +336,7 @@ build clang fedora x86_64:
     - 'windows'
     - '2022'
   needs:
+    - "trigger"
     - "windows amd64 docker"
   timeout: '45min'
   variables:
@@ -344,6 +347,8 @@ build clang fedora x86_64:
       -Dvaapi=disabled
       -Dgst-plugins-base:pango=enabled
       -Dgst-plugins-good:cairo=enabled
+      -Dgst-plugins-good:soup=enabled
+      -Dgst-plugins-good:soup-lookup-dep=true
     # Needs to not be empty otherwise the newline -> space replace command in
     # `script:` will fail
     MESON_CROSS_ARGS: ' '
@@ -354,6 +359,11 @@ build clang fedora x86_64:
       when: manual
     - changes:
         *modules_changes
+    - changes:
+        - subprojects/win-*/*
+  before_script:
+    # Install more recent version. We need at least 0.63 for diff_files support in wraps
+    - pip3 install -U meson==1.1.1
   script:
     # Make sure powershell exits on errors
     # https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_preference_variables?view=powershell-6
@@ -400,9 +410,12 @@ build vs2019 arm64 uwp:
     ARCH: 'arm64'
     # pango pulls in cairo which pulls in pixman which doesn't build because of
     # https://github.com/mesonbuild/meson/issues/9889
+    # libsoup requires glib-compile-resources, which isn't available in a cross
+    # build
     MESON_CROSS_ARGS: >
       -Dgst-plugins-base:pango=disabled
       -Dgst-plugins-good:cairo=disabled
+      -Dgst-plugins-good:soup-lookup-dep=false
       -Dgst-devtools:cairo=disabled
       --cross-file ci/meson/vs2019-arm64-cross-file.txt
       --native-file ci/meson/vs2019-x64-native-file.txt
@@ -465,7 +478,6 @@ build msys2 :
     - >
       ./gst-env.py
       gst-validate-launcher ${TEST_SUITE}
-      --check-bugs
       --dump-on-failure
       --mute
       --shuffle
@@ -494,6 +506,7 @@ build msys2 :
     - '.fdo.suffixed-image@fedora'
     - '.test'
   needs:
+    - "trigger"
     - "fedora amd64 docker"
   tags: ['gstreamer']
 
@@ -504,8 +517,23 @@ check fedora:
 
 integration testsuites fedora:
   extends: '.test fedora x86_64'
-  parallel: 4
+  parallel: 8
   variables:
+    MESON_BUILDTYPE_ARGS: >
+      -Domx=disabled
+      -Dsharp=disabled
+      -Dvaapi=disabled
+      -Dexamples=disabled
+      -Dgst-examples=disabled
+      -Dtests=disabled
+      -Dnls=disabled
+      -Dqt5=disabled
+      -Dgstreamer:benchmarks=disabled
+      -Dgst-plugins-good:gtk3=disabled
+      -Dgst-plugins-bad:microdns=disabled
+      -Dgst-plugins-bad:avtp=disabled
+      -Dgst-plugins-bad:opencv=disabled
+      -Dgst-plugins-bad:webrtc=disabled
     EXTRA_VALIDATE_ARGS: "--timeout-factor=2 --retry-on-failures --parts=${CI_NODE_TOTAL} --part-index=${CI_NODE_INDEX} --sync"
     TEST_SUITE: "validate ges"
 
@@ -654,6 +682,10 @@ valgrind ges:
       - subprojects/gst-plugins-bad/**/*
       - subprojects/gst-editing-services/**/*
       - subprojects/gst-python/**/*
+  # valgrind ges jobs are racy across the board and simply fail too often.
+  # Someone needs to go through job logs and figure out which jobs to mark
+  # as flaky. Until then, just ignore failures.
+  allow_failure: true
 
 # ---- Integration ----- #
 
@@ -711,6 +743,7 @@ build documentation:
     - '.documentation'
   stage: build
   needs:
+    - "trigger"
     - "fedora amd64 docker"
   rules:
     # Never run post merge, we have the `documentation` always running for that
@@ -744,6 +777,7 @@ cerbero trigger:
     - '.fedora image'
     - '.fdo.suffixed-image@fedora'
   needs:
+    - "trigger"
     - "fedora amd64 docker"
   script:
     - ci/gitlab/trigger_cerbero_pipeline.py