name: Deploy Docs on: push: branches: [main] workflow_dispatch: jobs: deploy: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Set up Python 3.10 uses: actions/setup-python@v5 with: python-version: '3.10' - name: Setup mdBook uses: peaceiris/actions-mdbook@v2 with: mdbook-version: 'latest' - name: Run mdBook regression tests run: | python3 -m unittest discover -s tests -p 'test_prepare_mdbook.py' python3 -m unittest discover -s tests -p 'test_prepare_mdbook_zh.py' python3 -m unittest discover -s tests -p 'test_assemble_docs_publish_tree.py' python3 -m unittest discover -s tests -p 'test_ensure_book_resources.py' - name: Build v2 (EN + ZH) with mdBook run: bash build_mdbook_v2.sh - name: Build v1 (EN + ZH) with mdBook run: bash build_mdbook_v1.sh - name: Verify build outputs run: | for d in .mdbook-v2/book .mdbook-v2-zh/book .mdbook-v1/book .mdbook-v1-zh/book; do if [ ! -f "$d/index.html" ]; then echo "ERROR: $d/index.html not found" exit 1 fi echo "OK: $d/index.html exists" done - name: Assemble and deploy to openmlsys.github.io env: DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }} run: | git clone https://x-access-token:${DEPLOY_TOKEN}@github.com/openmlsys/openmlsys.github.io.git python3 tools/assemble_docs_publish_tree.py \ --destination-root openmlsys.github.io \ --docs-subdir docs \ --v2-en-source .mdbook-v2/book \ --v2-zh-source .mdbook-v2-zh/book \ --v1-en-source .mdbook-v1/book \ --v1-zh-source .mdbook-v1-zh/book cd openmlsys.github.io git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add docs if git diff --cached --quiet; then echo "No changes to commit" else git commit -m "deploy: update docs from ${GITHUB_REPOSITORY}@${GITHUB_SHA}" git push fi