Skip to content
Snippets Groups Projects
Select Git revision
  • 9048e2200e590ff4e6d2775abbb3792036963bc1
  • master default protected
2 results

MySQL.pm

Blame
  • build-docs.sh 2.95 KiB
    #!/bin/bash
    
    VERSIONS_JSON=""
    
    function clean_cache {
      echo "Removing cache from directory ./site ./lib/python/docs/build"
      rm -rf ./site ./lib/python/docs/build
    }
    
    function generate_sphinx {
      BRANCH="release-$1"
      echo "==================================================="
      echo "Building LIB for version $1 on branch $BRANCH"
      echo "==================================================="
      git reset --hard && git checkout "$BRANCH"
      pip install -r ./requirements.txt > /dev/null
      mkdir -p ./final
      sed -i -e "s/__APPVERSION__/${APP_VERSION}/g" ./lib/python/setup.py ./lib/python/pyproject.toml ./lib/python/docs/conf.py ./lib/python/docs/index.rst ./lib/python/docs/index.rst
      sphinx-apidoc -o ./lib/python/docs/source ./lib/python/dbrepo
      sphinx-build -M html ./lib/python/docs/ ./lib/python/docs/build/
      cp -r ./lib/python/docs/build/html "./final/$1/sphinx"
      clean_cache
    }
    
    function generate_docs {
      BRANCH="release-$1"
      echo "==================================================="
      echo "Building DOCS for version $1 on branch $BRANCH"
      echo "==================================================="
      git reset --hard && git checkout "$BRANCH"
      pip install -r ./requirements.txt > /dev/null
      mkdir -p ./final
      if [ "$1" = "latest" ]; then
        VERSIONS_JSON=$(cat ./versions.json)
      fi
      find .docs/ -type f -exec sed -i -e "s/__APPVERSION__/$1/g" {} \;
      find .docs/ -type f -exec sed -i -e "s/__CHARTVERSION__/$1/g" {} \;
      mkdocs build > /dev/null && cp -r ./site "./final/$1"
      cp -r "./swagger/$1" "./final/$1/swagger"
      echo $VERSIONS_JSON > "./final/$1/versions.json"
      clean_cache
    }
    
    function generate_api {
      BRANCH="release-$1"
      echo "==================================================="
      echo "Building API for version $1 on branch $BRANCH"
      echo "==================================================="
      git reset --hard && git checkout "$BRANCH"
      bash .docs/.swagger/swagger-site.sh
      find ./site -type f -exec sed -i -e "s/__APPVERSION__/$1/g" {} \;
      mkdir -p "./swagger/$1"
      cp -r ./site/* "./swagger/$1/"
      clean_cache
    }
    
    # usage
    if [ -z "$DOC_VERSIONS" ]; then
        echo "Variable DOC_VERSIONS not set"
        exit 1
    fi
    versions=(${DOC_VERSIONS//,/ })
    
    # usage
    if [ -z "$APP_VERSION" ]; then
        echo "Variable APP_VERSION not set"
        exit 2
    fi
    echo "==================================================="
    echo "APP_VERSION=$APP_VERSION"
    echo "==================================================="
    
    # ensure branches exist on machine
    git fetch
    
    generate_api "latest"
    generate_docs "latest"
    generate_sphinx "latest"
    
    # versions
    for i in "${!versions[@]}"; do
      version="${versions[i]}"
      generate_api "$version"
      generate_docs "$version"
      generate_sphinx "$version" || true
    done
    
    
    # finalization
    echo "==================================================="
    echo "Moving HTML redirect and JSON versions to /"
    cp ./final/${APP_VERSION}/index.html.tpl ./final/index.html
    cp ./final/${APP_VERSION}/versions.json ./final/versions.json
    echo "==================================================="