Add a pre-commit hook that automatically checks if GES children properties documentation is up to date when GES source files are modified. The hook runs the document-children-props.py script and warns if the generated documentation files have changes that need to be committed. This ensures that children properties documentation stays synchronized with code changes and prevents outdated documentation from being merged. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5987>
67 lines
2.2 KiB
Bash
Executable File
67 lines
2.2 KiB
Bash
Executable File
#! /bin/bash
|
|
|
|
builddir="$1"
|
|
if [[ -z "$builddir" ]]; then
|
|
echo "Usage: build-docs.sh <build_directory>"
|
|
exit 1
|
|
fi
|
|
|
|
set -eux
|
|
|
|
source "ci/scripts/source_image_env.sh"
|
|
|
|
# Special doc mode for V4L2 stateless codecs
|
|
export GST_V4L2_CODEC_GEN_DOC=1
|
|
|
|
meson_args="${MESON_ARGS:--Ddoc=enabled -Drs=enabled -Dgst-docs:fatal_warnings=true}"
|
|
echo "$meson_args"
|
|
meson setup "$builddir" $meson_args
|
|
ccache --show-stats
|
|
|
|
ninja -C "$builddir" update_girs
|
|
# Ignore modifications to wrap files made by meson
|
|
git checkout $(git ls-files 'subprojects/*.wrap')
|
|
./ci/scripts/check-diff.py "gir files"
|
|
|
|
./gst-env.py --builddir "$builddir" ninja -C "$builddir" plugins_doc_caches
|
|
|
|
# Ignore modifications to wrap files made by meson
|
|
git checkout $(git ls-files 'subprojects/*.wrap')
|
|
./ci/scripts/check-diff.py
|
|
|
|
ninja -C "$builddir" subprojects/gst-docs/sitemap.txt
|
|
|
|
export GI_TYPELIB_PATH=$PWD/girs
|
|
hotdoc run --conf-file "$builddir"/subprojects/gst-docs/GStreamer-doc.json
|
|
|
|
mv "$builddir/subprojects/gst-docs/GStreamer-doc/html" documentation/
|
|
|
|
# Check GES children properties documentation is up to date
|
|
echo "Checking GES children properties documentation..."
|
|
# Force building python extension modules to ensure the _gi_gst python module is built
|
|
ninja -C "$builddir" gst-python@@gst-python-extensions
|
|
./gst-env.py --builddir "$builddir" python3 subprojects/gst-editing-services/docs/libs/document-children-props.py
|
|
|
|
# Check if there are any changes in the markdown files
|
|
if ! git diff --ignore-submodules --exit-code subprojects/gst-editing-services/docs/libs/*-children-props.md; then
|
|
echo "ERROR: GES children properties documentation is out of date!"
|
|
|
|
# Create diff for download
|
|
diffsdir='diffs'
|
|
mkdir -p "$diffsdir"
|
|
diffname="$diffsdir/ges_children_properties_documentation.diff"
|
|
git diff --ignore-submodules subprojects/gst-editing-services/docs/libs/*-children-props.md > "$diffname"
|
|
|
|
echo ""
|
|
echo "You can download and apply the changes with:"
|
|
echo " \$ curl -L \${CI_ARTIFACTS_URL}/$diffname | git apply -"
|
|
echo ""
|
|
echo "(note that it might take a few minutes for artifacts to be available on the server)"
|
|
|
|
exit 1
|
|
fi
|
|
echo "GES children properties documentation is up to date"
|
|
|
|
pip3 install bs4
|
|
python3 subprojects/gst-docs/scripts/rust_doc_unifier.py documentation/
|