name: deploy preview docs

on:
  pull_request_target:
    branches:
      - main
    paths:
      - "fern/**"

jobs:
  preview-docs:
    runs-on: ubuntu-latest

    permissions:
      contents: read
      pull-requests: write

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          ref: refs/pull/${{ github.event.pull_request.number }}/merge

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "24"

      - name: Install Fern
        run: npm install -g fern-api

      - name: Generate Documentation Preview with Fern
        id: generate_docs
        env:
          FERN_TOKEN: ${{ secrets.FERN_TOKEN }}
        run: |
          output=$(fern generate --docs --preview --log-level debug)
          echo "$output"
          # Extract the URL
          preview_url=$(echo "$output" | grep -oP '(?<=Published docs to )https://[^\s]*')
          # Set the output for the step
          echo "::set-output name=preview_url::$preview_url"
      - name: Comment PR with URL using github-actions bot
        uses: actions/github-script@v7
        if: ${{ steps.generate_docs.outputs.preview_url }}
        with:
          script: |
            const preview_url = '${{ steps.generate_docs.outputs.preview_url }}';
            github.rest.issues.createComment({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              body: `Published docs preview URL: ${preview_url}`
            })
