keyrune/.github/workflows/docs-pr.yml

79 lines
2.3 KiB
YAML

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-<number>/
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