From: Justin Pryzby Date: Sat, 26 Feb 2022 19:34:35 -0600 Subject: [PATCH 06/10] cirrus: build docs as a separate task.. This will run the doc build if any docs have changed, even if Linux fails, to allow catch doc build failures. This automatically shows up as a separate "column" on cfbot. Also, in the future, this will hopefully upload each patch's changed HTML docs as an artifact, for easy review. XXX: it ought to be possible to skip (re)building docs if they haven't changed since the last build. But that doesn't appear to be working. https://cirrus-ci.com/task/4523764229603328 skip: "!changesInclude('.cirrus.yml', 'doc/**')" ci-os-only: html --- .cirrus.yml | 48 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 3eda0268161..5cb18032779 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -736,20 +736,6 @@ task: make -s -j${BUILD_JOBS} clean time make -s -j${BUILD_JOBS} world-bin - ### - # Verify docs can be built - ### - # XXX: Only do this if there have been changes in doc/ since last build - always: - docs_build_script: | - time ./configure \ - --cache gcc.cache \ - CC="ccache gcc" \ - CXX="ccache g++" \ - CLANG="ccache clang" - make -s -j${BUILD_JOBS} clean - time make -s -j${BUILD_JOBS} -C doc - ### # Verify headerscheck / cpluspluscheck succeed # @@ -773,3 +759,37 @@ task: always: upload_caches: ccache + + +### +# Verify docs can be built +# changesInclude() will skip this task if none of the commits since +# CIRRUS_LAST_GREEN_CHANGE touched any relevant files. The comparison appears +# to be like "git log a..b -- ./file", not "git diff a..b -- ./file" +### + +task: + name: Documentation + + env: + CPUS: 1 + BUILD_JOBS: 1 + + only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*(docs|html).*' + + container: + image: $CONTAINER_REPO/linux_debian_bullseye_ci:latest + cpu: $CPUS + memory: 2G + + # Exercise HTML and other docs: + ninja_docs_build_script: | + mkdir build-ninja + cd build-ninja + time meson setup + time ninja docs + + # Again, with autoconf + docs_build_script: | + time ./configure + make -s -j${BUILD_JOBS} -C doc -- 2.25.1 --sMkrXc3gAYLRVOjR Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0007-cirrus-warnings-use-a-single-common-always-block.patch"