--- /dev/null
+name: Retrigger Read the Docs Build
+
+on:
+ issue_comment:
+ types: [created]
+
+permissions:
+ contents: read
+ issues: read
+ pull-requests: read
+
+jobs:
+ retrigger-rtd:
+ if: github.event.issue.pull_request &&
+ (contains(github.event.comment.body, 'jenkins test docs') ||
+ contains(github.event.comment.body, 'jenkins rebuild docs') ||
+ contains(github.event.comment.body, 'jenkins retrigger docs'))
+ runs-on: ubuntu-latest
+ steps:
+ - name: Extract PR Branch Name
+ run: |
+ PR_URL="${{ github.event.issue.pull_request.url }}"
+ PR_BRANCH=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "${PR_URL}" | jq -r .head.ref)
+ echo "PR_BRANCH=${PR_BRANCH}" >> $GITHUB_ENV
+ echo "Detected PR Branch: ${PR_BRANCH}"
+
+ - name: Send Webhook to Read the Docs
+ run: |
+ PAYLOAD=$(jq -n \
+ --arg ref "refs/heads/${{ env.PR_BRANCH }}" \
+ --arg repo "${{ github.event.repository.name }}" \
+ --arg owner "${{ github.repository_owner }}" \
+ '{event: "push", ref: $ref, repository: {name: $repo, owner: {login: $owner}}}')
+
+ SECRET="${{ secrets.READTHEDOCS_API_TOKEN }}"
+ SIGNATURE=$(echo -n "$PAYLOAD" | openssl dgst -sha256 -hmac "$SECRET" | awk '{print $2}')
+
+ curl -X POST \
+ -H "Content-Type: application/json" \
+ -H "X-Hub-Signature-256: sha256=$SIGNATURE" \
+ -d "$PAYLOAD" \
+ ${{ secrets.READTHEDOCS_WEBHOOK_URL }}