name: Docs Deploy on: push: branches: [main] workflow_dispatch: inputs: full_reconcile: description: 'Run full changelog reconcile from GitHub Releases' required: false default: false type: boolean release_tag: description: 'Optional release tag for incremental changelog sync (for release relay)' required: false type: string release_action: description: 'Optional release action (published, edited, deleted) for incremental sync' required: false type: string permissions: contents: read pages: write id-token: write concurrency: group: docs-pages cancel-in-progress: true jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v5 with: ref: main - name: Setup pnpm uses: pnpm/action-setup@v6 - name: Setup Node.js uses: actions/setup-node@v5 with: node-version: lts/* cache: pnpm cache-dependency-path: docs-site/pnpm-lock.yaml - name: Install docs dependencies working-directory: docs-site run: pnpm install --frozen-lockfile - name: Build changelog feed env: CHANGELOG_PUBLIC_BASE_URL: https://docs.openreader.richardr.dev CHANGELOG_FORCE_FULL: ${{ github.event_name == 'workflow_dispatch' && inputs.full_reconcile && '1' || '0' }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: node scripts/build-changelog-feed.mjs - name: Build docs working-directory: docs-site run: pnpm build - name: Upload Pages artifact uses: actions/upload-pages-artifact@v5 with: path: docs-site/build deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} needs: build runs-on: ubuntu-latest steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v5