|
|
@@ -0,0 +1,83 @@
|
|
|
+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: actions/setup-node@v6
|
|
|
+ with:
|
|
|
+ node-version: ${{ env.PRIMARY_NODE_VERSION }}
|
|
|
+
|
|
|
+ - name: Enable corepack (pnpm)
|
|
|
+ run: corepack enable
|
|
|
+
|
|
|
+ - name: Resolve pnpm store path
|
|
|
+ id: pnpm-store
|
|
|
+ run: echo "path=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT"
|
|
|
+
|
|
|
+ - uses: actions/cache@v4
|
|
|
+ with:
|
|
|
+ path: ${{ steps.pnpm-store.outputs.path }}
|
|
|
+ key: ${{ runner.os }}-node-${{ env.PRIMARY_NODE_VERSION }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
|
|
+ restore-keys: |
|
|
|
+ ${{ runner.os }}-node-${{ env.PRIMARY_NODE_VERSION }}-pnpm-
|
|
|
+
|
|
|
+ - name: Install (immutable)
|
|
|
+ run: pnpm install --frozen-lockfile
|
|
|
+
|
|
|
+ - name: Configure Pages
|
|
|
+ id: pages
|
|
|
+ uses: actions/configure-pages@v5
|
|
|
+
|
|
|
+ - 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@v4
|
|
|
+ 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@v4
|