fix: split preview workflow into ci/pr for fork PR compatibility

Move PR comment posting to a workflow_run-triggered pr-* workflow
following the established two-workflow split pattern (see ci-size-data
→ pr-report). Uses post-pr-report-comment action with a unique HTML
marker for idempotent comment upserts with full pagination.

Addresses review feedback:
https://github.com/Comfy-Org/ComfyUI_frontend/pull/11289#discussion_r3090292990
https://github.com/Comfy-Org/ComfyUI_frontend/pull/11289#discussion_r3090292996
This commit is contained in:
bymyself
2026-04-15 21:41:34 -07:00
parent 01d9a7e3f3
commit 7854c17b38
2 changed files with 58 additions and 25 deletions

View File

@@ -25,7 +25,6 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
@@ -45,31 +44,17 @@ jobs:
URL=$(vercel deploy --prebuilt --token=${{ secrets.VERCEL_WEBSITE_TOKEN }})
echo "url=$URL" >> "$GITHUB_OUTPUT"
- name: Comment preview URL on PR
uses: actions/github-script@v8
- name: Save PR metadata
run: |
mkdir -p temp/vercel-preview
echo "${{ steps.deploy.outputs.url }}" > temp/vercel-preview/url.txt
echo "${{ github.event.number }}" > temp/vercel-preview/number.txt
- name: Upload preview metadata
uses: actions/upload-artifact@v6
with:
script: |
const body = `**Website Preview:** ${process.env.PREVIEW_URL}`
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
})
const existing = comments.find(
(c) => c.user?.type === 'Bot' && c.body?.includes('**Website Preview:**')
)
const params = {
owner: context.repo.owner,
repo: context.repo.repo,
body,
}
if (existing) {
await github.rest.issues.updateComment({ ...params, comment_id: existing.id })
} else {
await github.rest.issues.createComment({ ...params, issue_number: context.issue.number })
}
env:
PREVIEW_URL: ${{ steps.deploy.outputs.url }}
name: vercel-preview
path: temp/vercel-preview
deploy-production:
if: github.event_name == 'push'

View File

@@ -0,0 +1,48 @@
---
name: 'PR: Vercel Website Preview'
on:
workflow_run:
workflows: ['CI: Vercel Website Preview']
types:
- completed
permissions:
contents: read
pull-requests: write
actions: read
jobs:
comment:
runs-on: ubuntu-latest
if: >
github.repository == 'Comfy-Org/ComfyUI_frontend' &&
github.event.workflow_run.event == 'pull_request' &&
github.event.workflow_run.conclusion == 'success'
steps:
- uses: actions/checkout@v6
- name: Download preview metadata
uses: dawidd6/action-download-artifact@0bd50d53a6d7fb5cb921e607957e9cc12b4ce392 # v12
with:
name: vercel-preview
run_id: ${{ github.event.workflow_run.id }}
path: temp/vercel-preview
- name: Read preview metadata
id: meta
run: |
echo "url=$(cat temp/vercel-preview/url.txt)" >> "$GITHUB_OUTPUT"
echo "pr-number=$(cat temp/vercel-preview/number.txt)" >> "$GITHUB_OUTPUT"
- name: Write report
run: |
echo "**Website Preview:** ${{ steps.meta.outputs.url }}" > preview-report.md
- name: Post PR comment
uses: ./.github/actions/post-pr-report-comment
with:
pr-number: ${{ steps.meta.outputs.pr-number }}
report-file: ./preview-report.md
comment-marker: '<!-- VERCEL_WEBSITE_PREVIEW -->'
token: ${{ secrets.GITHUB_TOKEN }}