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

123 lines
4.0 KiB
Bash
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/