mirror of
git://git.yoctoproject.org/yocto-autobuilder-helper.git
synced 2025-07-19 20:59:02 +02:00

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