# Docusaurus documentation site deployment # Prerequisite: Enable GitHub Pages in repo Settings → Pages → Source: GitHub Actions # and allow the target branch in Settings → Environments → github-pages → Deployment branches name: Deploy Documentation Site on: push: branches: - main paths: - 'docs/**' - '.github/workflows/deploy-docs.yml' workflow_dispatch: concurrency: group: pages-deploy-${{ github.ref }} cancel-in-progress: false permissions: contents: read jobs: test: name: Docusaurus Tests uses: ./.github/workflows/docusaurus-tests.yml permissions: contents: read id-token: write # Required for Codecov OIDC in the reusable workflow with: soft-fail: false build: name: Build Docusaurus needs: test runs-on: ubuntu-latest permissions: contents: read pages: write steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false fetch-depth: 0 - name: Setup Node.js uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: 24 cache: npm cache-dependency-path: docs/docusaurus/package-lock.json - name: Install dependencies working-directory: docs/docusaurus run: npm ci - name: Build site working-directory: docs/docusaurus run: npm run build - name: Configure Pages uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0 - name: Upload artifact uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 with: path: docs/docusaurus/build deploy: name: Deploy to GitHub Pages needs: build runs-on: ubuntu-latest permissions: pages: write id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0