| #!/bin/bash -ex |
| |
| # publish-docs.sh |
| # |
| # This sccript is used to publish the VPP User documents to |
| # the FD.io Site. |
| # |
| # Arguments: |
| # |
| # $1: The main site repo user name |
| # $2: The release branch name for example 1908, 1904 etc. |
| |
| # Some basic checks |
| if [ ! -d "docs" ]; then |
| echo "This script is meant to be run from the root directory." |
| exit 1; |
| fi |
| |
| if [ "$#" -ne 2 ]; then |
| echo "Please specify the site username and branch." |
| exit 1; |
| fi |
| |
| # Get the workspace root |
| WS_ROOT=$PWD |
| |
| # Get the VPP branch and username |
| SITE_USERNAME=$1 |
| VPP_BRANCH=$2 |
| |
| #Build the docs |
| make docs-clean |
| make docs-venv |
| make docs |
| |
| # Clone the site repo |
| rm -fr site |
| rm -fr sphinx_env |
| git clone ssh://git@github.com/$SITE_USERNAME/site |
| cd site |
| git submodule update --init --recursive |
| git remote add upstream ssh://git@github.com/FDio/site |
| git remote -v |
| git fetch upstream |
| git merge -m "Publish the Docs" upstream/master |
| |
| # Get the version |
| VERSION=`source $WS_ROOT/src/scripts/version` |
| VERSION=${VERSION/"~"/"-"} |
| |
| # Copy the files to the appropriate directory |
| SRC_DIR=../docs/_build/html/. |
| if [ "$VPP_BRANCH" == "master" ] |
| then |
| TARGET_DIR=./static/docs/vpp/master |
| rm -fr $TARGET_DIR |
| else |
| TARGET_DIR=./static/docs/vpp/v$VPP_BRANCH |
| rm -fr $TARGET_DIR |
| mkdir -p $TARGET_DIR |
| VERSION=v$VPP_BRANCH |
| ln -s $VERSION ./static/docs/vpp/latest |
| fi |
| |
| # Create a branch for the commit |
| git checkout -b $VERSION |
| git branch |
| |
| # Copy the docs |
| cp -r $SRC_DIR $TARGET_DIR |
| |
| # Create the feature list |
| pushd .. |
| source ./sphinx_venv/bin/activate |
| find . -name FEATURE.yaml | ./src/scripts/fts.py --markdown > site/content/vppProject/vppfeatures/features.md |
| deactivate |
| popd |
| |
| # Push the new docs |
| git add "*" |
| git commit -s -m "Publish docs from VPP $VERSION" |
| git push origin "$VERSION" |
| |
| exit 0 |