Tim-Philipp Müller 142f24043d gitlab/ci_template: only run valgrind for MRs not master and stable branches
The valgrind runs are there to spot obvious problems during the dev phase,
not sure we really need to run them in full after each merge.

Should reduce load on the build bots a little.

If any problems slip in they will be picked up soon enough by
the MR jobs again.
2019-06-07 17:34:36 +00:00

664 lines
20 KiB
YAML

stages:
- 'preparation'
# Test just one basic build, if it succeeds proceed to test the rest
- 'build'
- 'test'
# Run multiple builds and tests, multi-distro, multi-arch
- 'full builds'
- 'full tests'
# build some apps to check that cross-platform binaries are usable
- 'apps'
- 'deploy'
variables:
ANDROID_IMAGE: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/android:2019-03-26-196225'
CERBERO_IMAGE: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/cerbero-fedora:2019-06-06-343857'
FEDORA_IMAGE: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/fedora:2019-03-26-196223'
FEDORA30_IMAGE: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/fedora:2019-05-29-324578'
INDENT_IMAGE: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/gst-indent:6f7e01e1e30a73efa880acdc8e911f1f20c58dbb'
MANIFEST_IMAGE: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/build-manifest:d19082b72667fb3382bdc3621520c4d26e258b2e'
# Branch to track for modules that have no ref specified in the manifest
GST_UPSTREAM_BRANCH: 'master'
ORC_UPSTREAM_BRANCH: 'master'
GIT_STRATEGY: none
MESON_BUILDTYPE_ARGS: --default-library=both
DEFAULT_MESON_ARGS: >
--werror
-Dpython=enabled
-Dlibav=enabled
-Dugly=enabled
-Dbad=enabled
-Ddevtools=enabled
-Dges=enabled
-Drtsp_server=enabled
-Dvaapi=enabled
-Dsharp=disabled
DEFAULT_CERBERO_ARGS: >
--variants werror
--timestamps
manifest:
image: $MANIFEST_IMAGE
stage: 'preparation'
script:
- cd /gst-ci
- gitlab/build_manifest.py --self-update
- gitlab/build_manifest.py ${CI_PROJECT_DIR}/manifest.xml
- cat ${CI_PROJECT_DIR}/manifest.xml
artifacts:
expire_in: "7 days"
paths:
- "manifest.xml"
gst indent:
image: $INDENT_IMAGE
stage: 'preparation'
variables:
GIT_STRATEGY: 'fetch'
script:
# man indent. grep RETURN VALUE, grab a beer on my behalf...
- indent --version || true
- curl -o gst-indent https://gitlab.freedesktop.org/gstreamer/gstreamer/raw/${GST_UPSTREAM_BRANCH}/tools/gst-indent
- chmod +x gst-indent
- find . -name '*.c' -exec ./gst-indent {} +
- |
if git diff --quiet; then
echo "Code is properly formatted"
else
git diff --color=always
echo 'style diverges, please run gst-indent first'
exit 1
fi
except:
variables:
# No point on trying to format C files in those repositories
- $CI_PROJECT_NAME == "gstreamer-sharp"
- $CI_PROJECT_NAME == "gst-integration-testsuites"
- $CI_PROJECT_NAME == "cerbero"
- $CI_PROJECT_NAME == "gst-docs"
.build:
stage: 'full builds'
dependencies:
- "manifest"
variables:
CC: "ccache gcc"
CXX: "ccache g++"
CCACHE_BASEDIR: "${CI_PROJECT_DIR}"
CCACHE_DIR: "${CI_PROJECT_DIR}/ccache"
MESON_ARGS: "${DEFAULT_MESON_ARGS} ${MESON_BUILDTYPE_ARGS}"
script:
- ccache -z
# Not sure why, but permission errors else
# https://gitlab.freedesktop.org/alatiera/gstreamer/-/jobs/41441
- cp -r /gst-build/ . && cd gst-build
- ./git-update --no-interaction --manifest="${CI_PROJECT_DIR}/manifest.xml"
- meson build/ $MESON_ARGS
- ninja -C build/
- ccache -s
after_script:
- cd gst-build/
# Clean the artifacts packages to avoid copying "useless" build products.
- test -d build && find build -name '*.[ao]' -delete
# Clean the .git repos since we won't need them anymore
- rm -rf subprojects/*/.git/
- rm -rf build/subprojects/*/.git/
cache:
key: "${CI_JOB_NAME}"
paths:
- "${CCACHE_DIR}"
artifacts:
expire_in: '5 days'
when: always
paths:
- "manifest.xml"
- "gst-build/"
except:
variables:
- $CI_PROJECT_NAME == "cerbero"
build fedora x86_64:
extends: '.build'
stage: 'build'
image: $FEDORA_IMAGE
variables:
MESON_ARGS: "${DEFAULT_MESON_ARGS} -Dsharp=enabled -Domx=enabled -Dgst-omx:target=generic ${MESON_BUILDTYPE_ARGS}"
except:
variables:
- $CI_PROJECT_NAME == "gst-docs"
- $CI_PROJECT_NAME == "cerbero"
build nodebug fedora x86_64:
extends: '.build'
stage: 'build'
image: $FEDORA30_IMAGE
variables:
MESON_ARGS: "${DEFAULT_MESON_ARGS} -Dsharp=enabled -Dgstreamer:gst_debug=false -Domx=enabled -Dgst-omx:target=generic -Ddoc=enabled ${MESON_BUILDTYPE_ARGS}"
build static fedora x86_64:
extends: 'build fedora x86_64'
variables:
MESON_BUILDTYPE_ARGS: "--default-library=static -Dintrospection=disabled -Ddoc=disabled"
build static nodebug fedora x86_64:
extends: 'build nodebug fedora x86_64'
variables:
MESON_BUILDTYPE_ARGS: "--default-library=static -Dintrospection=disabled -Ddoc=disabled"
.test:
stage: 'test'
variables:
# Disable colored output to avoid weird rendering issues
GST_DEBUG_NO_COLOR: "true"
CI_ARTIFACTS_URL: "${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/validate-logs/"
GST_VALIDATE_LAUNCHER_FORCE_COLORS: "true"
script:
- cd gst-build/
- echo "-> Running ${TEST_SUITE}"
- >
./gst-uninstalled.py
gst-validate-launcher ${TEST_SUITE}
--dump-on-failure
--mute
--shuffle
--no-display
--meson-no-rebuild
--fail-on-testlist-change
-l "${CI_PROJECT_DIR}/validate-logs/"
--xunit-file "${CI_PROJECT_DIR}/validate-logs/xunit.xml"
${EXTRA_VALIDATE_ARGS}
artifacts:
expire_in: '14 days'
when: always
paths:
- 'gst-build/build/meson-logs/'
- 'validate-logs'
reports:
junit:
- "validate-logs/*.xml"
# We disable the .build above, which this job usually depends upon for cerbero
except:
variables:
- $CI_PROJECT_NAME == "cerbero"
- $CI_PROJECT_NAME == "gst-examples"
- $CI_PROJECT_NAME == "gst-docs"
.test fedora x86_64:
image: $FEDORA_IMAGE
extends: '.test'
dependencies:
- build fedora x86_64
check fedora:
extends: '.test fedora x86_64'
variables:
TEST_SUITE: "check.gst*"
except:
variables:
- $CI_PROJECT_NAME == "gst-integration-testsuites"
- $CI_PROJECT_NAME == "cerbero"
- $CI_PROJECT_NAME == "gst-examples"
- $CI_PROJECT_NAME == "gst-omx"
- $CI_PROJECT_NAME == "gst-docs"
integration testsuites fedora:
extends: '.test fedora x86_64'
before_script:
- rm -f gst-build/build/subprojects/gstreamer-vaapi/gst/vaapi/libgstvaapi.so
variables:
EXTRA_VALIDATE_ARGS: "--timeout-factor=2 --retry-on-failures --check-bugs"
TEST_SUITE: "validate ges"
except:
variables:
- $CI_PROJECT_NAME == "gst-omx"
- $CI_PROJECT_NAME == "gstreamer-vaapi"
- $CI_PROJECT_NAME == "cerbero"
- $CI_PROJECT_NAME == "gst-docs"
# Valgrind
.valgrind fedora x86_64:
extends: '.test fedora x86_64'
stage: 'full tests'
variables:
EXTRA_VALIDATE_ARGS: "--valgrind"
# Some suppression files are missing a newline at the end which messes things
# up when concatenating them. awk will add missing newlines (unlike cat)
except:
variables:
- $CI_PROJECT_NAMESPACE == 'gstreamer'
valgrind core:
extends: '.valgrind fedora x86_64'
variables:
TEST_SUITE: "check.gstreamer\\..*"
only:
variables:
- $CI_PROJECT_NAME =~ /^(gstreamer|gst-ci)$/
valgrind base:
extends: '.valgrind fedora x86_64'
variables:
TEST_SUITE: "check.gst-plugins-base\\..*"
only:
variables:
- $CI_PROJECT_NAME =~ /^(gstreamer|gst-plugins-base|gst-ci)$/
valgrind good:
extends: '.valgrind fedora x86_64'
variables:
TEST_SUITE: "check.gst-plugins-good\\..*"
only:
variables:
- $CI_PROJECT_NAME =~ /^(gstreamer|gst-plugins-base|gst-plugins-good|gst-ci)$/
valgrind ugly:
extends: '.valgrind fedora x86_64'
variables:
TEST_SUITE: "check.gst-plugins-ugly\\..*"
only:
variables:
- $CI_PROJECT_NAME =~ /^(gstreamer|gst-plugins-base|gst-plugins-ugly|gst-ci)$/
valgrind bad:
extends: '.valgrind fedora x86_64'
variables:
TEST_SUITE: "check.gst-plugins-bad\\..*"
only:
variables:
- $CI_PROJECT_NAME =~ /^(gstreamer|gst-plugins-base|gst-plugins-good|gst-plugins-bad|gst-ci)$/
valgrind ges:
extends: '.valgrind fedora x86_64'
variables:
TEST_SUITE: "check.gst-editing-services\\..*"
only:
variables:
- $CI_PROJECT_NAME =~ /^(gstreamer|gst-plugins-base|gst-plugins-good|gst-editing-services|gst-ci)$/
# Template for Cerbero GStreamer Build
#
# Parameters:
# CONFIG: The name of the configuration file to use
# ARCH: The cerbero <os>_<cpu> (used in cache key)
#
# Produces runtime and devel tarball packages for linux/android or .pkg for macos
.cerbero:
stage: "full builds"
image: $CERBERO_IMAGE
dependencies:
- "manifest"
variables:
CCACHE_BASEDIR: "${CI_PROJECT_DIR}"
CCACHE_DIR: "${CI_PROJECT_DIR}/ccache"
CCACHE_MAXSIZE: "1.7G"
CERBERO_HOME: "cerbero-build"
CERBERO_SOURCES: "cerbero-sources"
CERBERO_DEPS: "cerbero-deps.tar.gz"
CERBERO_ARGS: "${DEFAULT_CERBERO_ARGS}"
CERBERO: "./cerbero-uninstalled -c config/${CONFIG} -c localconf.cbc -m manifest.xml"
CERBERO_PACKAGE_ARGS: "-t"
HAVE_CCACHE: "yes"
# used by macos packages as we only ever install to a fixed directory
CERBERO_OVERRIDDEN_DIST_DIR: ""
before_script:
# FIXME Wrong namespace
# Workaround build-tools having hardcoded internal path
- pwd
- mkdir -p ../../gstreamer
- ln -sf $(pwd) ../../gstreamer/cerbero
- mkdir -p ../../${CI_PROJECT_NAMESPACE}
- ln -sf $(pwd) ../../${CI_PROJECT_NAMESPACE}/cerbero
- rsync -aH /cerbero/ .
- test -f ${CERBERO_DEPS} && tar -C ${CERBERO_HOME} -xf ${CERBERO_DEPS}
- echo "home_dir = \"$(pwd)/${CERBERO_HOME}\"" >> localconf.cbc
- echo "local_sources = \"$(pwd)/${CERBERO_SOURCES}\"" >> localconf.cbc
- ./cerbero-uninstalled --self-update manifest.xml
script:
- test "x${HAVE_CCACHE}" = "xyes" && ccache -z
- $CERBERO $CERBERO_ARGS show-config
- $CERBERO $CERBERO_ARGS fetch-bootstrap --build-tools-only
- $CERBERO $CERBERO_ARGS fetch-package --deps gstreamer-1.0
- $CERBERO $CERBERO_ARGS fetch-cache
- test "x${CERBERO_OVERRIDDEN_DIST_DIR}" != "x"
&& test -d ${CERBERO_HOME}/dist/${ARCH}
&& mkdir -p ${CERBERO_OVERRIDDEN_DIST_DIR}
&& rsync -aH ${CERBERO_HOME}/dist/${ARCH}/ ${CERBERO_OVERRIDDEN_DIST_DIR}
- $CERBERO $CERBERO_ARGS bootstrap --offline --build-tools-only
- $CERBERO $CERBERO_ARGS package --offline ${CERBERO_PACKAGE_ARGS} -o $(pwd) gstreamer-1.0
- test "x${HAVE_CCACHE}" = "xyes" && ccache -s || true # eat the return value from the failing test
except:
variables:
- $CI_PROJECT_NAME == "gst-build"
- $CI_PROJECT_NAME == "gst-docs"
cache:
key: "${CI_JOB_NAME}"
paths:
- "${CCACHE_DIR}"
- "${CERBERO_SOURCES}"
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_SHA}"
expire_in: '5 days'
when: 'always'
paths:
- "manifest.xml"
- "${CERBERO_HOME}/logs"
- "*.tar.bz2"
# Template for Cerbero GStreamer Deps
#
# This template is used by cerbero/ project to pre-built the GStreamer
# depedencies. When available, the .cerbero jobs will download this artifact
# in order to speed up the build.
#
# Parameters:
# CONFIG: The name of the configuration file to use
# ARCH: The cerbero <os>_<cpu> (used in cache key)
#
# Produce an artifact with the dist/ and .cache along
# with the associated build-tools.
.cerbero deps:
extends: .cerbero
stage: "build"
script:
- $CERBERO $CERBERO_ARGS show-config
- $CERBERO $CERBERO_ARGS fetch-bootstrap --build-tools-only
- $CERBERO $CERBERO_ARGS fetch-package --deps gstreamer-1.0
- $CERBERO $CERBERO_ARGS bootstrap --offline --build-tools-only
- $CERBERO $CERBERO_ARGS build-deps --offline
gstreamer-1.0 gst-plugins-base-1.0 gst-plugins-good-1.0
gst-plugins-bad-1.0 gst-plugins-ugly-1.0 gst-rtsp-server-1.0
gst-libav-1.0 gst-validate gst-editing-services-1.0 libnice
- $CERBERO $CERBERO_ARGS fetch-cache --skip-fetch --job-id=${CI_JOB_ID}
- test "x${CERBERO_OVERRIDDEN_DIST_DIR}" != "x"
&& mkdir -p ${CERBERO_HOME}/dist/${ARCH}
&& rsync -aH ${CERBERO_OVERRIDDEN_DIST_DIR}/ ${CERBERO_HOME}/dist/${ARCH}
- tar -C ${CERBERO_HOME} -czf $CERBERO_DEPS
build-tools build-tools.cache
dist/${ARCH} ${ARCH}.cache
only:
variables:
- $CI_PROJECT_NAME == "cerbero"
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_SHA}"
expire_in: '10 days'
when: 'always'
paths:
- "manifest.xml"
- "${CERBERO_HOME}/logs"
- "${CERBERO_HOME}/cerbero-deps.log"
- "${CERBERO_DEPS}"
#
# Cerbero Linux X86_64 build
#
cerbero deps fedora x86_64:
extends: '.cerbero deps'
variables:
CONFIG: "linux.config"
ARCH: "linux_x86_64"
.cerbero fedora x86_64:
extends: '.cerbero'
variables:
CONFIG: "linux.config"
cerbero fedora x86_64:
extends: '.cerbero fedora x86_64'
dependencies:
- "cerbero deps fedora x86_64"
only:
variables:
- $CI_PROJECT_NAME == "cerbero"
build cerbero fedora x86_64:
extends: '.cerbero fedora x86_64'
except:
variables:
- $CI_PROJECT_NAME == "cerbero"
- $CI_PROJECT_NAME == "gst-build"
- $CI_PROJECT_NAME == "gst-omx"
- $CI_PROJECT_NAME == "gstreamer-vaapi"
- $CI_PROJECT_NAME == "gst-docs"
#
# Cerbero Android Universal build
#
cerbero deps android universal:
extends: '.cerbero deps'
variables:
CERBERO_ARGS: "${DEFAULT_CERBERO_ARGS} -v nowerror"
CONFIG: "cross-android-universal.cbc"
ARCH: "android_universal"
.cerbero android universal:
extends: '.cerbero'
variables:
CERBERO_ARGS: "${DEFAULT_CERBERO_ARGS} -v nowerror"
CONFIG: "cross-android-universal.cbc"
cerbero android universal:
extends: '.cerbero android universal'
dependencies:
- "cerbero deps android universal"
only:
variables:
- $CI_PROJECT_NAME == "cerbero"
build cerbero android universal:
extends: '.cerbero android universal'
except:
variables:
- $CI_PROJECT_NAME == "cerbero"
- $CI_PROJECT_NAME == "gst-build"
- $CI_PROJECT_NAME == "gst-omx"
- $CI_PROJECT_NAME == "gstreamer-vaapi"
- $CI_PROJECT_NAME == "gst-docs"
#
# Cerbero Cross Windows builds
#
cerbero deps windows x86:
extends: '.cerbero deps'
variables:
CONFIG: "cross-win32.cbc"
ARCH: "windows_x86"
.cerbero cross win32:
extends: '.cerbero'
variables:
CONFIG: "cross-win32.cbc"
cerbero cross win32:
extends: '.cerbero cross win32'
dependencies:
- "cerbero deps windows x86"
only:
variables:
- $CI_PROJECT_NAME == "cerbero"
build cerbero cross win32:
extends: '.cerbero cross win32'
except:
variables:
- $CI_PROJECT_NAME == "cerbero"
- $CI_PROJECT_NAME == "gst-build"
- $CI_PROJECT_NAME == "gst-omx"
- $CI_PROJECT_NAME == "gstreamer-vaapi"
- $CI_PROJECT_NAME == "gst-docs"
cerbero deps windows x86_64:
extends: '.cerbero deps'
variables:
CONFIG: "cross-win64.cbc"
ARCH: "windows_x86_64"
.cerbero cross win64:
extends: '.cerbero'
variables:
CONFIG: "cross-win64.cbc"
cerbero cross win64:
extends: '.cerbero cross win64'
dependencies:
- "cerbero deps windows x86_64"
only:
variables:
- $CI_PROJECT_NAME == "cerbero"
build cerbero cross win64:
extends: '.cerbero cross win64'
except:
variables:
- $CI_PROJECT_NAME == "cerbero"
- $CI_PROJECT_NAME == "gst-build"
- $CI_PROJECT_NAME == "gst-omx"
- $CI_PROJECT_NAME == "gstreamer-vaapi"
- $CI_PROJECT_NAME == "gst-docs"
#
# Build an Android App using the android binaries
#
.android universal examples:
image: $ANDROID_IMAGE
stage: 'apps'
variables:
EXAMPLES_HOME: ${CI_PROJECT_DIR}/examples
GSTREAMER_ROOT_ANDROID: ${CI_PROJECT_DIR}/examples/cerbero-android-universal
script:
- mkdir -p ${EXAMPLES_HOME}/outputs
- curl -o clone_manifest_ref.py https://gitlab.freedesktop.org/gstreamer/gst-ci/raw/${GST_UPSTREAM_BRANCH}/gitlab/clone_manifest_ref.py
- chmod +x clone_manifest_ref.py
- ./clone_manifest_ref.py --manifest manifest.xml --project gst-examples --destination ${EXAMPLES_HOME}/gst-examples
- ./clone_manifest_ref.py --manifest manifest.xml --project gst-docs --destination ${EXAMPLES_HOME}/gst-docs
- rm clone_manifest_ref.py
# extract our binaries
- rm -f gstreamer-1.0-android-universal-*-runtime.tar.bz2
- mkdir ${GSTREAMER_ROOT_ANDROID}
- tar -C ${GSTREAMER_ROOT_ANDROID} -xf gstreamer-1.0-android-universal-*.tar.bz2
# gst-examples
- chmod +x ${EXAMPLES_HOME}/gst-examples/playback/player/android/gradlew
- ${EXAMPLES_HOME}/gst-examples/playback/player/android/gradlew --no-search-upward --no-daemon --project-dir ${EXAMPLES_HOME}/gst-examples/playback/player/android assembleDebug
- cp ${EXAMPLES_HOME}/gst-examples/playback/player/android/app/build/outputs/apk/debug/*.apk ${EXAMPLES_HOME}/outputs/
# gst-docs android tutorials
- chmod +x ${EXAMPLES_HOME}/gst-docs/examples/tutorials/android/gradlew
- ${EXAMPLES_HOME}/gst-docs/examples/tutorials/android/gradlew --no-search-upward --no-daemon --project-dir ${EXAMPLES_HOME}/gst-docs/examples/tutorials/android assembleDebug
- cp ${EXAMPLES_HOME}/gst-docs/examples/tutorials/android/android-tutorial-*/build/outputs/apk/debug/*.apk ${EXAMPLES_HOME}/outputs/
after_script:
- rm -rf ${GSTREAMER_ROOT_ANDROID}
- rm -rf ${EXAMPLES_HOME}/gst-examples ${EXAMPLES_HOME}/gst-docs
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_SHA}"
expire_in: '5 days'
when: 'always'
paths:
- "manifest.xml"
- "${EXAMPLES_HOME}/outputs"
android universal examples:
extends: ".android universal examples"
dependencies:
- "build cerbero android universal"
except:
variables:
- $CI_PROJECT_NAME == "cerbero"
- $CI_PROJECT_NAME == "gst-build"
- $CI_PROJECT_NAME == "gst-omx"
- $CI_PROJECT_NAME == "gst-integration-testsuites"
- $CI_PROJECT_NAME == "gstreamer-vaapi"
- $CI_PROJECT_NAME == "gst-docs"
cerbero android universal examples:
extends: ".android universal examples"
dependencies:
- "cerbero android universal"
only:
variables:
- $CI_PROJECT_NAME == "cerbero"
#
# Cerbero macOS X86_64 build
#
cerbero deps macos x86_64:
extends: '.cerbero deps'
stage: "build"
variables:
ARCH: "darwin_x86_64"
CONFIG: "osx-x86-64.cbc"
CERBERO_ARGS: "${DEFAULT_CERBERO_ARGS} -v nowerror"
HAVE_CCACHE: ""
CERBERO_OVERRIDDEN_DIST_DIR: "/Library/Frameworks/GStreamer.framework/Versions/1.0"
tags:
- gst-macos-10.14
.cerbero macos x86_64:
extends: '.cerbero'
variables:
ARCH: "darwin_x86_64"
CONFIG: "osx-x86-64.cbc"
CERBERO_ARGS: "${DEFAULT_CERBERO_ARGS} -v nowerror"
CERBERO_PACKAGE_ARGS: ""
HAVE_CCACHE: ""
CERBERO_OVERRIDDEN_DIST_DIR: "/Library/Frameworks/GStreamer.framework/Versions/1.0"
tags:
- gst-macos-10.14
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_SHA}"
expire_in: '5 days'
when: 'always'
paths:
- "manifest.xml"
- "${CERBERO_HOME}/logs"
- "gstreamer-1.0-1.*.pkg"
- "gstreamer-1.0-devel-1.*.pkg"
cerbero macos x86_64:
extends: '.cerbero macos x86_64'
dependencies:
- "cerbero deps macos x86_64"
only:
variables:
- $CI_PROJECT_NAME == "cerbero"
build cerbero macos x86_64:
extends: '.cerbero macos x86_64'
except:
variables:
- $CI_PROJECT_NAME == "cerbero"
- $CI_PROJECT_NAME == "gst-build"
- $CI_PROJECT_NAME == "gst-integration-testsuite"
- $CI_PROJECT_NAME == "gst-omx"
- $CI_PROJECT_NAME == "gstreamer-vaapi"
- $CI_PROJECT_NAME == "gst-docs"
- $CI_PROJECT_NAME == "gst-sharp"
documentation:
image: $FEDORA30_IMAGE
dependencies:
- 'build nodebug fedora x86_64'
stage: deploy
script:
- pip3 install --upgrade git+https://github.com/hotdoc/hotdoc.git
- cd gst-build/
- ./gst-uninstalled.py hotdoc run --conf-file=build/subprojects/gst-docs/GStreamer-doc.json --fatal-warnings
- cd -
- mv gst-build/build/subprojects/gst-docs/GStreamer-doc/html documentation/
artifacts:
paths:
- documentation/
except:
variables:
- $CI_PROJECT_NAME == "cerbero"
- $CI_PROJECT_NAME == "gst-integration-testsuite"
- $CI_PROJECT_NAME == "gst-python"
- $CI_PROJECT_NAME == "gst-sharp"
- $CI_PROJECT_NAME == "gst-build"