From 5193e1cfd1e8ce663daab70b59376de2ea2ca2c1 Mon Sep 17 00:00:00 2001 From: Benjamin Hackl Date: Thu, 26 Oct 2023 14:29:21 +0200 Subject: [PATCH] Introduce new workflow creating a downloadable version of the documentation (#3417) * Revert "rtd: enable htmlzip build (#3355)" This reverts commit 571f79be2cf0eff8819aa5d0492d3542b76e5ab3. * use python3.11 to build docs * upgrade python version used in release publish workflow * new workflow for building downloadable docs * change event trigger for testing * sudo apt * rename release job; build html in poetry env * set GITHUB_PATH instead of PATH * introduce additional step * use correct binary path * forgot microtype * fonts-roboto + actually compress files correctly * fix asset path * Update .github/workflows/release-publish-documentation.yml Co-authored-by: Naveen M K * pull_request -> workflow_dispatch * Update .github/workflows/release-publish-documentation.yml --------- Co-authored-by: Naveen M K --- .github/workflows/python-publish.yml | 4 +- .../release-publish-documentation.yml | 84 +++++++++++++++++++ .readthedocs.yml | 4 - 3 files changed, 86 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/release-publish-documentation.yml diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index e1e3d79c05..99ae512bbb 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -10,10 +10,10 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up Python 3.8 + - name: Set up Python 3.11 uses: actions/setup-python@v4 with: - python-version: 3.9 + python-version: 3.11 - name: Install dependencies run: python -m pip install --upgrade poetry diff --git a/.github/workflows/release-publish-documentation.yml b/.github/workflows/release-publish-documentation.yml new file mode 100644 index 0000000000..56b68eef52 --- /dev/null +++ b/.github/workflows/release-publish-documentation.yml @@ -0,0 +1,84 @@ +name: Publish downloadable documentation + +on: + release: + types: [released] + workflow_dispatch: + +jobs: + build-and-publish-htmldocs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Python 3.11 + uses: actions/setup-python@v4 + with: + python-version: 3.11 + + - name: Install system dependencies + run: | + sudo apt update && sudo apt install -y \ + pkg-config libcairo-dev libpango1.0-dev ffmpeg wget fonts-roboto + wget -qO- "https://yihui.org/tinytex/install-bin-unix.sh" | sh + echo ${HOME}/.TinyTeX/bin/x86_64-linux >> $GITHUB_PATH + + - name: Install LaTeX and Python dependencies + run: | + tlmgr install \ + babel-english ctex doublestroke dvisvgm frcursive fundus-calligra jknapltx \ + mathastext microtype physics preview ragged2e relsize rsfs setspace standalone \ + wasy wasysym + python -m pip install --upgrade poetry + poetry install + + - name: Build and package documentation + run: | + cd docs/ + poetry run make html + cd build/html/ + tar -czvf ../html-docs.tar.gz * + + - name: Store artifacts + uses: actions/upload-artifact@v3 + with: + path: ${{ github.workspace }}/manim/docs/build/html-docs.tar.gz + name: html-docs.tar.gz + + - name: Install Dependency + run: pip install requests + + - name: Get Upload URL + if: github.event == 'release' + id: create_release + shell: python + env: + access_token: ${{ secrets.GITHUB_TOKEN }} + tag_act: ${{ github.ref }} + run: | + import requests + import os + ref_tag = os.getenv('tag_act').split('/')[-1] + access_token = os.getenv('access_token') + headers = { + "Accept":"application/vnd.github.v3+json", + "Authorization": f"token {access_token}" + } + url = f"https://api.github.com/repos/ManimCommunity/manim/releases/tags/{ref_tag}" + c = requests.get(url,headers=headers) + upload_url=c.json()['upload_url'] + with open(os.getenv('GITHUB_OUTPUT'), 'w') as f: + print(f"upload_url={upload_url}", file=f) + print(f"tag_name={ref_tag[1:]}", file=f) + + - name: Upload Release Asset + if: github.event == 'release' + id: upload-release + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ${{ github.workspace }}/manim/docs/build/html-docs.tar.gz + asset_name: manim-htmldocs-${{ steps.create_release.outputs.tag_name }}.tar.gz + asset_content_type: application/gzip diff --git a/.readthedocs.yml b/.readthedocs.yml index 3c93ef3d97..44b7408cbf 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -1,8 +1,4 @@ version: 2 - -formats: - - htmlzip - build: os: ubuntu-22.04