Our "documentation" CI job performs a couple of tests against our
documentation. Part of these tests is to check whether documentation
builds at all and whether it spits out the expected set of files. We
don't yet have such a test for Meson, which means that we wouldn't
notice at all if building the documentation were to break. As a result,
breakages as fixed by 87eccc3a81 (meson: fix building technical and
howto docs, 2025-03-02) are easy to go unnoticed.
Address this test gap by starting to build both manpages and HTML sites
as part of the CI job.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
62 lines
1.6 KiB
Bash
Executable File
62 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Perform sanity checks on documentation and build it.
|
|
#
|
|
|
|
. ${0%/*}/lib.sh
|
|
|
|
filter_log () {
|
|
sed -e '/^GIT_VERSION=/d' \
|
|
-e "/constant Gem::ConfigMap is deprecated/d" \
|
|
-e '/^ \* new asciidoc flags$/d' \
|
|
-e '/stripped namespace before processing/d' \
|
|
-e '/Attributed.*IDs for element/d' \
|
|
-e '/SyntaxWarning: invalid escape sequence/d' \
|
|
"$1"
|
|
}
|
|
|
|
check_docs () {
|
|
test -s "$1"/Documentation/git.html &&
|
|
test -s "$1"/Documentation/git.xml &&
|
|
test -s "$1"/Documentation/git.1 &&
|
|
grep "<meta name=\"generator\" content=\"$2 " "$1"/Documentation/git.html
|
|
}
|
|
|
|
make check-builtins
|
|
make check-docs
|
|
|
|
# Build docs with AsciiDoc
|
|
make doc > >(tee stdout.log) 2> >(tee stderr.raw >&2)
|
|
cat stderr.raw
|
|
filter_log stderr.raw >stderr.log
|
|
test ! -s stderr.log
|
|
check_docs . AsciiDoc
|
|
|
|
rm -f stdout.log stderr.log stderr.raw
|
|
check_unignored_build_artifacts
|
|
|
|
# Build docs with AsciiDoctor
|
|
make clean
|
|
make USE_ASCIIDOCTOR=1 doc > >(tee stdout.log) 2> >(tee stderr.raw >&2)
|
|
cat stderr.raw
|
|
filter_log stderr.raw >stderr.log
|
|
test ! -s stderr.log
|
|
check_docs . Asciidoctor
|
|
|
|
rm -f stdout.log stderr.log stderr.raw
|
|
check_unignored_build_artifacts
|
|
|
|
# Build docs with Meson and AsciiDoc
|
|
meson setup build-asciidoc -Ddocs=html,man -Ddocs_backend=asciidoc
|
|
meson compile -C build-asciidoc
|
|
check_docs build-asciidoc AsciiDoc
|
|
rm -rf build-asciidoc
|
|
|
|
# Build docs with Meson and AsciiDoctor
|
|
meson setup build-asciidoctor -Ddocs=html,man -Ddocs_backend=asciidoctor
|
|
meson compile -C build-asciidoctor
|
|
check_docs build-asciidoctor Asciidoctor
|
|
rm -rf build-asciidoctor
|
|
|
|
save_good_tree
|