Back to development
[platform/upstream/gstreamer.git] / .gitlab-ci.yml
index 07ea686..e6b7439 100644 (file)
@@ -1,6 +1,17 @@
 include:
-  - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/14731f78c23c7b523a85a26a068ade9ac1ecd2f3/templates/fedora.yml"
-  - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/14731f78c23c7b523a85a26a068ade9ac1ecd2f3/templates/debian.yml"
+  - project: 'freedesktop/ci-templates'
+    ref: 14731f78c23c7b523a85a26a068ade9ac1ecd2f3
+    file: '/templates/fedora.yml'
+  - project: 'freedesktop/ci-templates'
+    ref: 14731f78c23c7b523a85a26a068ade9ac1ecd2f3
+    file: '/templates/debian.yml'
+  ###
+  # IMPORTANT
+  # These are the version tags for the docker images the CI runs against.
+  # If you are hacking on them or need a them to rebuild, you need to change
+  # the appropriate version string in this file which will cause a rebuild.
+  ###
+  - local: '.gitlab-image-tags.yml'
 
 stages:
   - 'trigger'
@@ -18,24 +29,13 @@ variables:
   # Branch to track for modules that have no ref specified in the manifest
   GST_UPSTREAM_BRANCH: 'main'
 
-  ###
-  # IMPORTANT
-  # These are the version tags for the docker images the CI runs against.
-  # 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:  '2022-03-14.0'
-  INDENT_TAG: '2022-03-07.1'
-  WINDOWS_TAG: "2022-05-16.1"
-
   GST_UPSTREAM_REPO: 'gstreamer/gstreamer'
   FDO_UPSTREAM_REPO: 'gstreamer/gstreamer'
 
-  FEDORA_AMD64_SUFFIX:  'amd64/fedora'
+  FEDORA_AMD64_SUFFIX: 'amd64/fedora'
   INDENT_AMD64_SUFFIX: 'amd64/gst-indent'
   WINDOWS_AMD64_SUFFIX: 'amd64/windows'
 
-  FEDORA_DOCS_IMAGE: "registry.freedesktop.org/gstreamer/gst-ci/amd64/fedora:2020-07-03.0-master"
   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"
 
@@ -658,23 +658,28 @@ valgrind ges:
 # ---- Integration ----- #
 
 .documentation:
-  image: $FEDORA_DOCS_IMAGE
-  extends:
-    - '.build_ccache_vars'
+  extends: '.build fedora x86_64'
   variables:
     MESON_ARGS: *simple_build
-    MESON_BUILDTYPE_ARGS: "-Ddoc=enabled"
+    MESON_BUILDTYPE_ARGS: "-Ddoc=enabled -Drs=enabled -Dgst-docs:fatal_warnings=true"
+    # Disable werror for the docs build, we don't need it
+    MESON_GST_WERROR: ''
     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
+  - export PATH=/usr/local/cargo/bin/:/usr/local/bin/:$PATH
+  - export RUSTUP_HOME='/usr/local/rustup'
+
+  - ci/scripts/handle-subprojects-cache.py subprojects/
+  - echo $MESON_ARGS
+  - meson build/ $MESON_ARGS
+  - ccache --show-stats
+
   - ./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
+
+  - ./gst-env.py ninja -C build subprojects/gst-docs/GStreamer-doc
   - mv build/subprojects/gst-docs/GStreamer-doc/html documentation/
 
   artifacts:
@@ -692,7 +697,8 @@ documentation:
   stage: integrate
   extends:
     - '.documentation'
-  needs: []
+  needs:
+    - "fedora amd64 docker"
   rules:
     - if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == "main"'
 
@@ -705,7 +711,7 @@ build documentation:
     - '.documentation'
   stage: build
   needs:
-    - "trigger"
+    - "fedora amd64 docker"
   rules:
     # Never run post merge, we have the `documentation` always running for that
     - if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == $GST_UPSTREAM_BRANCH'
@@ -731,7 +737,7 @@ build documentation:
 # https://gitlab.com/gitlab-org/gitlab/-/issues/341737
 cerbero trigger:
   stage: build
-  timeout: '3h'
+  timeout: '4h'
   tags:
     - placeholder-job
   extends: