Sphinx Multiversioning #2613
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build_and_publish_docs | |
on: | |
push: | |
branches: | |
- dev | |
- master | |
- test/** | |
pull_request: | |
branches: | |
- dev | |
# TODO: Need to remove the branch below, it's just for testing. | |
- feat/sphinx_multiversion | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ github.ref != 'refs/heads/dev' && github.ref != 'refs/heads/master' }} | |
jobs: | |
publish: | |
name: build and publish docs | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: set up python 3.9 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.9 | |
- uses: r-lib/actions/setup-pandoc@v2 | |
with: | |
pandoc-version: '3.1.6' | |
- name: setup poetry and install dependencies | |
run: | | |
python -m pip install --upgrade pip poetry | |
python -m poetry install --with tutorials,docs --all-extras --no-ansi --no-interaction | |
- name: testing actions/checkout_v4 (remove this before merging PR) | |
env: | |
BRANCH_NAME: ${{ github.head_ref || github.ref_name }} | |
run: | | |
git branch | |
git status | |
echo "$BRANCH_NAME" | |
- name: checking if it's a polyversion build | |
if: ${{ github.event_name != 'pull_request' }} | |
run: | | |
echo "POLYVERSION_BUILD=True" >> $GITHUB_ENV | |
- name: build documentation | |
env: | |
TG_BOT_TOKEN: ${{ secrets.TG_BOT_TOKEN }} | |
TG_BOT_USERNAME: ${{ secrets.TG_BOT_USERNAME }} | |
LOCAL_BUILD: "False" | |
BRANCH_NAME: ${{ github.head_ref || github.ref_name }} | |
run: | | |
python -m poetry run poe docs | |
- name: remove jekyll theming | |
run: touch docs/build/.nojekyll | |
- name: get old tags names for updating documentation | |
if: ${{ github.ref == 'refs/heads/master' }} | |
run: | | |
echo "OLD_VERSIONS=$(python -c 'import os, json; print json.dumps(os.listdir("."))')" >> "$GITHUB_ENV" | |
echo "${{ env.OLD_VERSIONS }}" | |
- name: get branch name for updating documentation | |
if: ${{ github.ref != 'refs/heads/master' }} | |
run: | | |
echo "OLD_VERSIONS=./${{ github.head_ref || github.ref_name }}" >> "$GITHUB_ENV" | |
echo "${{ env.OLD_VERSIONS }}" | |
- name: update switcher.json file | |
if: ${{ github.ref == 'refs/heads/master' }} | |
run: | | |
cp docs/source/_static/switcher.json ./docs/build/switcher.json | |
- name: save changes and checkout to gh-pages | |
run: | | |
git add -f . | |
git stash | |
git checkout gh-pages | |
- name: delete previous docs build for this branch | |
uses: EndBug/[email protected] | |
with: | |
remove: '-r --ignore-unmatch ${{ env.OLD_VERSIONS }}' | |
- name: checkout to original branch and reapply changes | |
run: | | |
git checkout - | |
git stash pop | |
- name: preparing for PR deployment | |
if: ${{ github.event_name == 'pull_request' }} | |
run: | | |
mkdir ${{ env.OLD_VERSIONS }} | |
mv !(${{ env.OLD_VERSIONS }}) ${{ env.OLD_VERSIONS }} | |
- name: deploy website | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
branch: gh-pages | |
folder: docs/build/ | |
clean: False | |
- name: printing link to the documentation | |
env: | |
BRANCH_NAME: ${{ github.head_ref || github.ref_name }} | |
run: | | |
echo "https://deeppavlov.github.io/chatsky/${{ env.BRANCH_NAME }}" |