name: Docs on: push: branches: [main] paths: - "docs/**" - "blume.config.ts" - "package.json" - "package-lock.json" - ".github/workflows/docs.yml" pull_request: paths: - "docs/**" - "blume.config.ts" - "package.json" - "package-lock.json" - ".github/workflows/docs.yml" workflow_dispatch: # GITHUB_TOKEN permissions for Pages deployment via OIDC. permissions: contents: read pages: write id-token: write # Serialize deployments; never cancel a running one mid-publish. concurrency: group: pages cancel-in-progress: false jobs: build: name: Build site runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: # Full history so Blume's `lastModified` can read per-page commit dates. fetch-depth: 0 - name: Setup Node uses: actions/setup-node@v4 with: # Blume requires Node 22.12 or newer. node-version: "22.x" cache: npm - name: Install dependencies run: npm ci - name: Configure Pages id: pages uses: actions/configure-pages@v5 - name: Build run: npm run build env: # Lifts the GitHub API rate limit for build-time repo metadata. GITHUB_TOKEN: ${{ github.token }} - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: dist deploy: name: Deploy to Pages # Deploy only from main; pull requests build as a check and stop there. if: github.event_name != 'pull_request' needs: build runs-on: ubuntu-latest environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy id: deployment uses: actions/deploy-pages@v4