name: Docs Preview (PR) on: pull_request: types: [opened, synchronize, reopened] branches: - master permissions: contents: write # push to gh-pages pull-requests: write # create/update PR comment concurrency: group: docs-preview-${{ github.event.pull_request.number }} cancel-in-progress: true jobs: build-and-deploy-preview: name: Build & deploy PR preview runs-on: ubuntu-latest steps: - name: Checkout PR branch uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm ci - name: Build docs run: npm run publish - name: Deploy preview to gh-pages/pr-/ uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_branch: gh-pages publish_dir: ./docs destination_dir: pr-${{ github.event.pull_request.number }} keep_files: true comment: name: Comment preview URL on PR needs: build-and-deploy-preview runs-on: ubuntu-latest # only for same-repo PRs (no forks) if: github.event.pull_request.head.repo.full_name == github.repository steps: - name: Find existing docs preview comment id: find-comment uses: peter-evans/find-comment@v4 with: issue-number: ${{ github.event.pull_request.number }} comment-author: 'github-actions[bot]' body-includes: 'Keyrune docs preview' - name: Create or update docs preview comment uses: peter-evans/create-or-update-comment@v5 with: comment-id: ${{ steps.find-comment.outputs.comment-id }} issue-number: ${{ github.event.pull_request.number }} body: | 🔍 **Keyrune docs preview** Preview URL: https://keyrune.andrewgioia.com/pr-${{ github.event.pull_request.number }}/ - Source branch: `${{ github.head_ref }}` - Target branch: `${{ github.base_ref }}` - Commit: `${{ github.sha }}` - Workflow run: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} _This comment will update automatically when new commits are pushed to this PR._ edit-mode: replace