yocto-autobuilder-helper/scripts/run-docs-build
Michael Opdenacker 86d7ed6fe9 scripts/run-docs-build: make all versions list releases known to master
This allows all versions of Bitbake and Yocto Project manuals
to see the manuals for the latest versions.

This also simplifies the release process, not having to update the
releases.rst file for all releases every time a new release is made.

Note that such synchronization is already done for the
switchers.js file (but in a different way). This way, advertised
releases are in sync with switchers.js.

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-08 22:00:05 +00:00

4.0 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

builddir=$1 ypdocs=$2/documentation/ bbdocs=$3/doc/ docs_buildtools=/srv/autobuilder/autobuilder.yoctoproject.org/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.yoctoproject.org/pub/docbook-mirror/docbook-archives-20201105.tar.xz mkdir $outputdir cd $outputdir tar -xJf $docbookarchive

cd $bbdocs git checkout master make clean make publish mkdir $outputdir/bitbake cp -r ./_build/final/* $outputdir/bitbake

git checkout master-next make clean 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 git checkout $branch git checkout master doc/releases.rst make clean make publish mkdir $outputdir/bitbake/$branch cp -r ./_build/final/* $outputdir/bitbake/$branch 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 git checkout master make clean make publish cp -r ./_build/final/* $outputdir

cd $ypdocs git checkout transition make clean make publish cp -r ./_build/final/* $outputdir/

cd $ypdocs git checkout master-next make clean 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 git checkout $branch git checkout master documentation/releases.rst make clean make publish mkdir $outputdir/$branch cp -r ./_build/final/* $outputdir/$branch 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 cd $ypdocs git checkout $tag # yocto-3.3 and yocto-3.4 were tagged before the current_version in # conf.py was changed resulting in sphinx believing these are # development branches which breaks all sorts of assumptions. Moving a # tag isn't best practice so we just patch the releases here instead. if [ "$tag" = "yocto-3.3" ] || [ "$tag" = "yocto-3.4" ]; then git am "${scriptdir}/${tag}/0001-conf-update-for-release.patch" fi git checkout master documentation/releases.rst make clean make publish version=$(echo $tag | cut -c7-) mkdir $outputdir/$version cp -r ./_build/final/ $outputdir/$version 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-) 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/