6b50d7e3a6
This is so that we can create a list of directories to ignore when we rsync documentation builds to a publishing site. Some builds are published as subdirectories underneath the results of superior builds. This allows those superior builds to be rsynced without removing the other builds that were published under them. Change-Id: Icb0c02dc5b6f7b5e248e0df6d6093c29535b08f3
87 lines
3.8 KiB
Bash
Executable File
87 lines
3.8 KiB
Bash
Executable File
#!/bin/bash -xe
|
|
|
|
# If a bundle file is present, call tox with the jenkins version of
|
|
# the test environment so it is used. Otherwise, use the normal
|
|
# (non-bundle) test environment. Also, run pbr freeze on the
|
|
# resulting environment at the end so that we have a record of exactly
|
|
# what packages we ended up testing.
|
|
#
|
|
|
|
venv=${1:-venv}
|
|
tags_handling=${2:both}
|
|
|
|
mkdir -p doc/build
|
|
export HUDSON_PUBLISH_DOCS=1
|
|
export UPPER_CONSTRAINTS_FILE=$(pwd)/upper-constraints.txt
|
|
# The "python setup.py build_sphinx" is intentionally executed instead of
|
|
# "tox -edocs", because it's the standard python project build interface
|
|
# specified in OpenStack Project Testing Interface:
|
|
# http://governance.openstack.org/reference/project-testing-interface.html
|
|
tox -e$venv -- python setup.py build_sphinx
|
|
result=$?
|
|
|
|
[ -e .tox/$venv/bin/pbr ] && freezecmd=pbr || freezecmd=pip
|
|
|
|
echo "Begin pbr freeze output from test virtualenv:"
|
|
echo "======================================================================"
|
|
.tox/${venv}/bin/${freezecmd} freeze
|
|
echo "======================================================================"
|
|
|
|
MARKER_TEXT="Project: $ZUUL_PROJECT Ref: $ZUUL_REFNAME Build: $ZUUL_UUID"
|
|
echo $MARKER_TEXT > doc/build/html/.root-marker
|
|
|
|
if [ -z "$ZUUL_REFNAME" ] || [ "$ZUUL_REFNAME" == "master" ] ; then
|
|
: # Leave the docs where they are.
|
|
elif echo $ZUUL_REFNAME | grep refs/tags/ >/dev/null ; then
|
|
# Put tagged releases in proper location. All tagged builds get copied to
|
|
# BUILD_DIR/tagname. If this is the latest tagged release the copy of files
|
|
# at BUILD_DIR remains. When Jenkins copies this file the root developer
|
|
# docs are always the latest release with older tags available under the
|
|
# root in the tagname dir.
|
|
TAG=$(echo $ZUUL_REFNAME | sed 's/refs.tags.//')
|
|
if [ ! -z $TAG ] ; then
|
|
# This is a hack to ignore the year.release tags in projects since
|
|
# now all projects use semver based versions instead of date based
|
|
# versions. The date versions will sort higher even though they
|
|
# should not so we just special case it here.
|
|
LATEST=$(git tag | sed -n -e '/^20[0-9]\{2\}\..*$/d' -e '/^[0-9]\+\(\.[0-9]\+\)*$/p' | sort -V | tail -1)
|
|
# Now publish to / and /$TAG if this is the latest version for projects
|
|
# and we are only publishing from the release pipeline,
|
|
# or just /$TAG otherwise.
|
|
if [ "$tags_handling" = "tags-only" -a "$TAG" = "$LATEST" ] ; then
|
|
# Copy the docs into a subdir if this is a tagged build
|
|
mkdir doc/build/$TAG
|
|
cp -R doc/build/html/. doc/build/$TAG
|
|
mv doc/build/$TAG doc/build/html/$TAG
|
|
else
|
|
# Move the docs into a subdir if this is a tagged build
|
|
mv doc/build/html doc/build/tmp
|
|
mkdir doc/build/html
|
|
mv doc/build/tmp doc/build/html/$TAG
|
|
fi
|
|
fi
|
|
elif echo $ZUUL_REFNAME | grep stable/ >/dev/null ; then
|
|
# Put stable release changes in dir named after stable release under the
|
|
# build dir. When Jenkins copies these files they will be accessible under
|
|
# the developer docs root using the stable release's name.
|
|
BRANCH=$(echo $ZUUL_REFNAME | sed 's/stable.//')
|
|
if [ ! -z $BRANCH ] ; then
|
|
# Move the docs into a subdir if this is a stable branch build
|
|
mv doc/build/html doc/build/tmp
|
|
mkdir doc/build/html
|
|
mv doc/build/tmp doc/build/html/$BRANCH
|
|
fi
|
|
else
|
|
# Put other branch changes in dir named after branch under the
|
|
# build dir. When Jenkins copies these files they will be
|
|
# accessible under the developer docs root using the branch name.
|
|
# EG: feature/foo or milestone-proposed
|
|
BRANCH=$ZUUL_REFNAME
|
|
TOP=`dirname $BRANCH`
|
|
mv doc/build/html doc/build/tmp
|
|
mkdir -p doc/build/html/$TOP
|
|
mv doc/build/tmp doc/build/html/$BRANCH
|
|
fi
|
|
|
|
exit $result
|