diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 000000000..794d6671f --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,79 @@ +# Simple workflow for deploying static content to GitHub Pages +name: Deploy static content to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + # - name: Harden Runner + # uses: step-security/harden-runner@main + # with: + # egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs + - name: Checkout + uses: actions/checkout@main + - name: 🐍 Set up Python + uses: actions/setup-python@main + with: + python-version: "3.12" + cache: "pip" + cache-dependency-path: "pyproject.toml" + - name: Install system dependencies + run: | + sudo apt update && sudo apt install -y \ + pkg-config libcairo-dev libpango1.0-dev 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 update --self + tlmgr install \ + babel-english ctex doublestroke dvisvgm frcursive fundus-calligra jknapltx \ + mathastext microtype physics preview ragged2e relsize rsfs setspace standalone \ + wasy wasysym + + - name: 🔧 Build HTML + run: | + sudo apt-get install graphviz + sudo apt-get update && sudo apt-get upgrade + sudo apt install build-essential python3-dev libcairo2-dev libpango1.0-dev ffmpeg + pip install --upgrade pip + pip install taolib invoke + pip install -e .[doc] --upgrade + conda install -c conda-forge pandoc compilers cppyy + conda install -c conda-forge ffmpeg manim + pip install manim + invoke doc + - name: Setup Pages + uses: actions/configure-pages@main + - name: Upload artifact + uses: actions/upload-pages-artifact@main + with: + # Upload entire repository + path: 'docs/build/html/' + - name: 🚀 Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@main + # uses: peaceiris/actions-gh-pages@v3.6.1 diff --git a/tasks.py b/tasks.py new file mode 100644 index 000000000..4eb47a4d6 --- /dev/null +++ b/tasks.py @@ -0,0 +1,11 @@ +import inspect +from pathlib import Path +import sys +ROOT = Path(__file__).resolve().parents[0] +sys.path.extend([str(ROOT/'src')]) +if not hasattr(inspect, 'getargspec'): # 修复 + inspect.getargspec = inspect.getfullargspec + +from tao.tools.write import site + +namespace = site('docs', target='docs/build/html')