name: Deploy documentation on: push: branches: [master] paths: - '.github/workflows/docs-pages.yml' - 'docs/**' - 'package.json' - 'pnpm-lock.yaml' - 'pnpm-workspace.yaml' - 'scripts/project-doc-site.ts' - 'scripts/project-doc-site.spec.ts' - 'website/**' workflow_dispatch: concurrency: group: github-pages cancel-in-progress: false permissions: contents: read env: PRIMARY_NODE_VERSION: '24' jobs: build: runs-on: ubuntu-latest permissions: contents: read pages: read steps: - uses: actions/checkout@v6 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v6 with: node-version: ${{ env.PRIMARY_NODE_VERSION }} cache: pnpm - name: Install (immutable) run: pnpm install --frozen-lockfile - name: Configure Pages id: pages uses: actions/configure-pages@v6 - name: Verify and build documentation env: DOCS_BASE: ${{ steps.pages.outputs.base_path }}/ run: pnpm run doc-sync - name: Upload Pages artifact uses: actions/upload-pages-artifact@v5 with: path: website/.dist deploy: 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@v5