yocto-autobuilder-helper/scripts/run-docs-build
Quentin Schulz 62e38ffaab scripts: run-docs-build: simplify patching logic
There's no need to keep a list of tags requiring to be patched since the
tag is part of the path where patches are stored.

Therefore, let's only check if there's a patch directory for a given tag
and if so, apply all patches in there.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-15 22:03:37 +00:00

4.3 KiB
Executable File

#!/bin/bash

Called with $1 as the build directory

$2 as the path to yocto-docs

$3 as the path to bitbake

set -e set -u set -o pipefail set -x

builddir=$1 ypdocs=$2/documentation/ bbdocs=$3/doc/ docs_buildtools=/srv/autobuilder/autobuilder.yocto.io/pub/buildtools/x86_64-buildtools-docs-nativesdk-standalone-3.2+snapshot-20201105.sh outputdir=$builddir/output scriptdir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"

cd $builddir mkdir buildtools $docs_buildtools -y -d $builddir/buildtools . $builddir/buildtools/environment-setup*

Getting the old docbook built docs from an archive. Not rebuilding them.

#wget https://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-archives-20201105.tar.xz docbookarchive=/srv/autobuilder/autobuilder.yocto.io/pub/docbook-mirror/docbook-archives-20201105.tar.xz mkdir $outputdir cd $outputdir echo Extracing old content from archive tar -xJf $docbookarchive

cd $bbdocs echo Building bitbake master branch git checkout master make clean SPHINXOPTS="-j auto" make publish mkdir $outputdir/bitbake cp -r ./_build/final/* $outputdir/bitbake

git checkout master-next echo Building bitbake master-next branch make clean SPHINXOPTS="-j auto" make publish mkdir $outputdir/bitbake/next cp -r ./_build/final/* $outputdir/bitbake/next

stable branches

A decision was made to keep updating all the Sphinx generated docs for the moment,

even the ones corresponding to no longer supported releases

https://lists.yoctoproject.org/g/docs/message/2193

We copy the releases.rst file from master so that all versions of the docs

see the latest releases.

for branch in 1.46 1.48 1.50 1.52; do echo Building bitbake $branch branch git checkout $branch git checkout master releases.rst make clean SPHINXOPTS="-j auto" make publish mkdir $outputdir/bitbake/$branch cp -r ./_build/final/* $outputdir/bitbake/$branch git reset --hard done

only sync bitbake folder for now. We need bitbake to be published first

since the bitbake intersphinx index will be downloaded to build yocto-docs

cd $outputdir rsync -irlp --checksum --ignore-times --delete bitbake docs@docs.yoctoproject.org:docs/

cd $ypdocs echo Building master branch git checkout master make clean SPHINXOPTS="-j auto" make publish cp -r ./_build/final/* $outputdir

cd $ypdocs echo Building transition branch git checkout transition make clean SPHINXOPTS="-j auto" make publish cp -r ./_build/final/* $outputdir/

cd $ypdocs echo Building master-next branch git checkout master-next make clean SPHINXOPTS="-j auto" make publish mkdir $outputdir/next cp -r ./_build/final/* $outputdir/next

stable branches

Again, keeping even the no longer supported releases (see above comment)

for branch in dunfell gatesgarth hardknott honister; do cd $ypdocs echo Building $branch branch git checkout $branch git checkout master releases.rst make clean SPHINXOPTS="-j auto" make publish mkdir $outputdir/$branch cp -r ./_build/final/* $outputdir/$branch git reset --hard done

Yocto Project releases/tags

v_sphinx='yocto-3.1.5' #This and newer versions have Sphinx docs. cd $ypdocs for tag in $(git tag --list 'yocto-'); do first=$(printf '%s\n%s' $tag $v_sphinx | sort --version-sort | head -n1) if [ "$first" = "$v_sphinx" ]; then echo Processing $tag cd $ypdocs git checkout $tag if [ -e "${scriptdir}/docs-build-patches/${tag}/" ]; then echo Adding patch for $tag git am "${scriptdir}/docs-build-patches/${tag}/"000 fi git checkout master releases.rst make clean SPHINXOPTS="-j auto" make publish version=$(echo $tag | cut -c7-) mkdir $outputdir/$version cp -r ./_build/final/* $outputdir/$version git reset --hard echo Finished processing $tag fi done

get current release (e.g. most recent tag), and add a 'current' link

tag=$(git tag --list 'yocto-*' | sort --version-sort | tail -1 | cut -c7-) echo Linking to $tag as current ln -s $tag $outputdir/current

Update switchers.js with the copy from master ypdocs

cd $outputdir find . -name switchers.js -not -path ./_static/switchers.js -exec cp ./_static/switchers.js {} ;

cd $outputdir rsync -irlp --checksum --ignore-times --delete . docs@docs.yoctoproject.org:docs/