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

The commit that introduced Sphinx support in yocto-docs is 01dd5af7954e24552aca022917669b27bb0541ed. Any tag containing this commit is buildable by sphinx. Dunfell tags don't all have Sphinx support. However, all tags containing the introducing commit c25fe058b88b893b0d146f3ed27320b47cdec236 are buildable by sphinx. Therefore, let's just list all tags which contains either of those two commits instead of the complex series of pipes and shell commands. 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>
137 lines
4.2 KiB
Bash
Executable File
137 lines
4.2 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
|
|
|
|
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
|
|
mkdir $outputdir/bitbake
|
|
|
|
# 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.
|
|
first_sphinx_commit=84ccba0f4aff91528f764523fe1205a354c889ed
|
|
for branch in 1.46 $(git branch --remote --contains "$first_sphinx_commit" --format '%(refname:lstrip=3)'); do
|
|
if [ "$branch" = "HEAD" ]; then
|
|
continue
|
|
fi
|
|
|
|
echo Building bitbake $branch branch
|
|
git checkout $branch
|
|
git checkout master releases.rst
|
|
make clean
|
|
make publish
|
|
|
|
if [ "$branch" = "master-next" ]; then
|
|
branch="next"
|
|
mkdir $outputdir/bitbake/$branch
|
|
elif [ "$branch" = "master" ]; then
|
|
branch=""
|
|
else
|
|
mkdir $outputdir/bitbake/$branch
|
|
fi
|
|
|
|
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
|
|
|
|
# Again, keeping even the no longer supported releases (see above comment)
|
|
first_sphinx_commit=01dd5af7954e24552aca022917669b27bb0541ed
|
|
for branch in dunfell transition $(git branch --remote --contains "$first_sphinx_commit" --format '%(refname:lstrip=3)'); do
|
|
if [ "$branch" = "HEAD" ]; then
|
|
continue
|
|
fi
|
|
|
|
# Do not build <release>-next branches as they are development branches only
|
|
# Do build master-next branch though!
|
|
if echo "$branch" | grep -v "master-next" | grep -q -E "-next$"; then
|
|
continue
|
|
fi
|
|
|
|
echo Building $branch branch
|
|
git checkout $branch
|
|
git checkout master releases.rst
|
|
make clean
|
|
make publish
|
|
|
|
if [ "$branch" = "master-next" ]; then
|
|
branch="next"
|
|
mkdir $outputdir/$branch
|
|
elif [ "$branch" = "master" ] || [ "$branch" = "transition" ]; then
|
|
branch=""
|
|
else
|
|
mkdir $outputdir/$branch
|
|
fi
|
|
|
|
cp -r ./_build/final/* $outputdir/$branch
|
|
git reset --hard
|
|
done
|
|
|
|
# Yocto Project releases/tags
|
|
first_dunfell_sphinx_commit=c25fe058b88b893b0d146f3ed27320b47cdec236
|
|
|
|
cd $ypdocs
|
|
for tag in $(git tag --contains "$first_sphinx_commit" --contains "$first_dunfell_sphinx_commit" 'yocto-*'); do
|
|
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
|
|
make publish
|
|
version=$(echo $tag | cut -c7-)
|
|
mkdir $outputdir/$version
|
|
cp -r ./_build/final/* $outputdir/$version
|
|
git reset --hard
|
|
echo Finished processing $tag
|
|
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/
|