/ .github / workflows / deploy-docs-pages.yml
deploy-docs-pages.yml
 1  name: Deploy Docs Pages
 2  
 3  on:
 4    push:
 5      branches:
 6        - main
 7    workflow_dispatch:
 8  
 9  permissions:
10    contents: read
11    pages: write
12    id-token: write
13  
14  concurrency:
15    group: pages
16    cancel-in-progress: false
17  
18  jobs:
19    build:
20      runs-on: ubuntu-latest
21      environment:
22        name: github-pages
23      steps:
24        - name: Checkout
25          uses: actions/checkout@v6
26  
27        - name: Setup Pages
28          id: pages
29          uses: actions/configure-pages@v5
30  
31        - name: Setup Node 22
32          uses: actions/setup-node@v6
33          with:
34            node-version: "22"
35  
36        - name: Setup pnpm
37          uses: pnpm/action-setup@v4
38          with:
39            version: 9.15.0
40  
41        - name: Enable corepack
42          run: corepack enable
43  
44        - name: Install docs dependencies
45          working-directory: docs
46          run: pnpm install --frozen-lockfile
47  
48        - name: Build docs
49          working-directory: docs
50          env:
51            # Use root base when custom domain is configured via CNAME.
52            DOCS_BASE: ${{ hashFiles('docs/public/CNAME') != '' && '/' || steps.pages.outputs.base_path }}
53          run: pnpm docs:build
54  
55        - name: Upload artifact
56          uses: actions/upload-pages-artifact@v4
57          with:
58            path: docs/.vitepress/dist
59  
60    deploy:
61      runs-on: ubuntu-latest
62      needs: build
63      environment:
64        name: github-pages
65        url: ${{ steps.deployment.outputs.page_url }}
66      steps:
67        - name: Deploy to GitHub Pages
68          id: deployment
69          uses: actions/deploy-pages@v4