Sphinx Multiversioning #2624
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" | |
echo "TARGET_FOLDER='$BRANCH_NAME'" >> $GITHUB_ENV | |
- name: checking if it's a polyversion build | |
if: ${{ github.event_name != 'pull_request' }} | |
run: | | |
echo "POLYVERSION_BUILD=True" >> $GITHUB_ENV | |
echo "TARGET_FOLDER=''" >> $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 tag names for updating documentation and update switcher | |
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 }}" | |
cp docs/source/_static/switcher.json ./docs/build/switcher.json | |
- 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: save changes and checkout to gh-pages | |
run: | | |
git add -f . | |
git stash | |
git checkout gh-pages | |
- name: clean outdated documentation | |
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: deploy website (for Pull Requests) | |
# TODO: Make a better True-False flag for deploying for Pull Requests. | |
# Make this use GitHub Action Variables. | |
# (PR only) Changed the variable below to False if you don't want to build docs for your PR | |
if: ${{ github.event_name == 'pull_request' && true }} | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
branch: gh-pages | |
folder: docs/build/ | |
target-folder: ${{ github.head_ref || github.ref_name }} | |
clean: False | |
- name: deploy website (default) | |
if: ${{ github.event_name != 'pull_request' }} | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
branch: gh-pages | |
folder: docs/build/ | |
target-folder: ${{env.TARGET_FOLDER}} | |
clean: False | |
- name: printing link to the documentation | |
if: ${{ github.ref != 'refs/heads/master' }} | |
run: | | |
echo "https://deeppavlov.github.io/chatsky/${{ github.head_ref || github.ref_name }}" |