Update code #3
This file contains hidden or 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: Docs (GitHub Pages) | |
| on: | |
| push: | |
| branches: [main] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| concurrency: | |
| group: pages | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Check out tree-sitter-multilingual | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: multilingualprogramming/tree-sitter-multilingual | |
| path: tree-sitter-multilingual | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install build + docs dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -e ".[wasm]" build mkdocs-material | |
| - name: Build wheel and stage playground assets | |
| run: | | |
| python -m build --wheel | |
| mkdir -p docs/assets | |
| cp multilingualprogramming/resources/usm/keywords.json docs/assets/keywords.json | |
| cp tree-sitter-multilingual/generated/monarch.json docs/assets/monarch.json | |
| WHEEL_FILE=$(ls dist/*.whl | head -n 1 | xargs basename) | |
| cp "dist/${WHEEL_FILE}" "docs/assets/${WHEEL_FILE}" | |
| echo "{\"wheel\": \"${WHEEL_FILE}\"}" > docs/assets/wheel_info.json | |
| - name: Build browser demo bundles for Pages | |
| run: | | |
| mkdir -p docs/browser/fibonacci docs/browser/dom-demo | |
| python -m multilingualprogramming build-wasm-bundle examples/browser/fibonacci_en.multi --lang en --out-dir docs/browser/fibonacci | |
| python -m multilingualprogramming build-wasm-bundle examples/browser/dom_demo_en.multi --lang en --out-dir docs/browser/dom-demo | |
| cp examples/browser/browser_runtime.js docs/browser/fibonacci/browser_runtime.js | |
| cp examples/browser/browser_runtime.js docs/browser/dom-demo/browser_runtime.js | |
| - name: Build Memory Game UI bundle for Pages (Reactive UI showcase) | |
| run: | | |
| mkdir -p docs/browser/memory-game | |
| python -m multilingualprogramming build-ui-bundle examples/memory_game_en.multi --lang en --out-dir docs/browser/memory-game | |
| - name: Stage root docs into docs_dir | |
| run: python tools/stage_docs.py | |
| - name: Build site | |
| run: mkdocs build --strict | |
| - name: Configure GitHub Pages | |
| uses: actions/configure-pages@v5 | |
| - name: Upload artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: site | |
| deploy: | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |