mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-05-05 13:41:59 +00:00
## Summary Make the website preview URL stable per PR and make deployments show up correctly in the Vercel dashboard. ## Changes - **What**: - Pass git metadata (`githubCommitRef`, `githubCommitSha`, `githubCommitAuthorLogin`, `githubCommitMessage`, `githubPrId`, `githubRepo`) via `vercel deploy --meta` so deployments group by branch/PR in the dashboard and pick up branch-scoped env vars. - Alias each preview deploy to a stable per-PR hostname: `comfy-website-preview-pr-<N>.vercel.app`. URL no longer changes between pushes on the same PR. - PR comment now shows the stable URL prominently, the per-commit URL as subtext, plus a last-updated timestamp and short SHA so reviewers can tell if the preview is current. - User-controlled PR fields routed through env vars (no shell interpolation of untrusted strings). ## Review Focus - `PREVIEW_ALIAS_PREFIX` is set to `comfy-website-preview` — confirm this subdomain pattern is free within the Vercel team (first deploy will claim it). - Production job is untouched. - `vercel.json` keeps `github.enabled: false` — intentional, we stay CLI-driven. ### Known limitation (out of scope) Vercel Shareable Links are bound to a specific deployment ID. Aliasing the stable hostname to a new deployment does **not** carry over previously-issued share links. If the team needs share links to persist across pushes, follow-up options: Protection Bypass for Automation (project-level token) or Deployment Protection Exceptions (Pro+). ### Follow-ups - Optional `vercel alias rm` on PR close to clean up stale aliases. ## Screenshots (if applicable) N/A — CI config only. Verification will land on this PR's own preview run. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-11478-ci-stabilize-Vercel-website-preview-URLs-per-PR-3486d73d3650815ab24be1f7895cecc5) by [Unito](https://www.unito.io) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
65 lines
2.0 KiB
YAML
65 lines
2.0 KiB
YAML
---
|
|
name: 'PR: Vercel Website Preview'
|
|
|
|
on:
|
|
workflow_run:
|
|
workflows: ['CI: Vercel Website Preview']
|
|
types:
|
|
- completed
|
|
|
|
permissions:
|
|
contents: read
|
|
pull-requests: write
|
|
actions: read
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}
|
|
cancel-in-progress: true
|
|
|
|
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: Resolve PR number from workflow_run context
|
|
id: pr-meta
|
|
uses: ./.github/actions/resolve-pr-from-workflow-run
|
|
|
|
- name: Write report
|
|
if: steps.pr-meta.outputs.skip != 'true'
|
|
env:
|
|
DEPLOYED_AT: ${{ github.event.workflow_run.updated_at }}
|
|
HEAD_SHA: ${{ github.event.workflow_run.head_sha }}
|
|
run: |
|
|
STABLE_URL=$(cat temp/vercel-preview/stable-url.txt)
|
|
UNIQUE_URL=$(cat temp/vercel-preview/url.txt)
|
|
SHORT_SHA="${HEAD_SHA:0:7}"
|
|
cat > preview-report.md <<EOF
|
|
**Website Preview:** $STABLE_URL
|
|
|
|
<sub>This commit: $UNIQUE_URL</sub>
|
|
|
|
<sub>Last updated: $DEPLOYED_AT for \`$SHORT_SHA\`</sub>
|
|
EOF
|
|
|
|
- name: Post PR comment
|
|
if: steps.pr-meta.outputs.skip != 'true'
|
|
uses: ./.github/actions/post-pr-report-comment
|
|
with:
|
|
pr-number: ${{ steps.pr-meta.outputs.number }}
|
|
report-file: ./preview-report.md
|
|
comment-marker: '<!-- VERCEL_WEBSITE_PREVIEW -->'
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|