yocto-autobuilder-helper/scripts/run-docs-build
Quentin Schulz 2b05713022 scripts: run-docs-build: patch yocto-3.3 and 3.4 releases
Both releases are missing an important patch that changes the displayed
version from dev to the appropriate release number.

This is confusing to the user and probably breaks some assumptions in
some scripts.

Ideally, the tags should have been moved with those patches applied to
their respective branch but that is not a git best practice so we're
stuck with this "hack" instead.

3.3.x releases aren't impacted as they got the patch applied.

Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-28 23:48:08 +01:00

113 lines
3.4 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*
#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
for branch in 1.46 1.48 1.50 1.52; do
git checkout $branch
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
for branch in dunfell gatesgarth hardknott honister; do
cd $ypdocs
git checkout $branch
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
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/