mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-05-05 21:54:50 +00:00
e68fa2b61d2d6e4da6ef309d49d7b9cb763b117e
3 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
c1954028d1 |
feat(ci): add Release:Website workflow to refresh Ashby snapshot (#11829)
## Summary
Adds a unified manual-trigger release flow for the `apps/website`
package
(careers/marketing site at comfy.org), mirroring how main-app releases
work.
**User-facing flow:**
```
workflow_dispatch ──► fresh Ashby pull ──► auto-PR with snapshot bump
│
▼
existing CI / Vercel preview deploy
│
▼
human merges ──► auto prod deploy
```
The careers data on comfy.org comes from Ashby and is fetched at build
time by
`apps/website/src/utils/ashby.ts`. Without `WEBSITE_ASHBY_API_KEY`, the
build
falls back to a committed snapshot at
`apps/website/src/data/ashby-roles.snapshot.json`. That snapshot has
been
going stale because no CI workflow was passing the API key. This PR
fixes
both: a manual refresh workflow + day-to-day secrets wiring.
## Files
**Added**
- `.github/actions/ashby-pull/action.yaml` — composite action that runs
`pnpm --filter @comfyorg/website ashby:refresh-snapshot` with the Ashby
secrets piped in. Uses the existing `setup-frontend` composite for
pnpm/Node setup.
- `.github/workflows/release-website.yaml` — `workflow_dispatch`-only
release workflow. Checks out `main`, refreshes the snapshot via the
composite action, opens a PR labelled `Release:Website` via
`peter-evans/create-pull-request@c0f553fe…` (the same SHA pin used by
`release-version-bump.yaml`).
**Modified**
- `.github/workflows/ci-website-build.yaml` — adds
`WEBSITE_ASHBY_API_KEY`
and `WEBSITE_ASHBY_JOB_BOARD_NAME` env to the `Build website` step.
- `.github/workflows/ci-vercel-website-preview.yaml` — adds the same env
to both `vercel build` steps (preview + production).
## Snapshot fallback preserved
`apps/website/src/utils/ashby.ts` keeps using the committed snapshot
when
the API key is absent (e.g. fork PRs, secret rotation). Verified
locally:
```
$ pnpm --filter @comfyorg/website ashby:refresh-snapshot
Snapshot refresh aborted. Outcome: stale; reason: missing WEBSITE_ASHBY_API_KEY...
```
The release workflow surfaces this as a job failure, which is the
desired
behavior for a manual release trigger.
## Validation
- `yamllint --config-file .yamllint` on all changed YAML — clean
- `./scripts/cicd/check-yaml.sh` — clean
- `pinact run --check` on new files — clean (matches `.pinact.yaml`
policy)
- `pnpm install --frozen-lockfile` — works with `.nvmrc` Node 24
- Husky pre-commit hooks (eslint + typecheck + lint-staged) passed
## Caveats
- **Cannot fully end-to-end test until merged.** `workflow_dispatch`
workflows only run from branches that exist on `main`. The first
manual run can only happen after this PR lands. The pieces that
*can* be tested pre-merge — yamllint, pinact pin validation, and
the existing `CI: Website Build` / `CI: Vercel Website Preview`
workflows now picking up the secret — will run on this PR.
- **`Release:Website` label needs to be created** in the repo before
the auto-PR step will successfully apply it.
`peter-evans/create-pull-request`
will warn but not fail if the label doesn't exist. Suggested color:
`#4f6ef5` (matches `cloud/*` family in `release-branch-create.yaml`).
- The release workflow uses `secrets.PR_GH_TOKEN` (matching
`release-version-bump.yaml`) so the auto-PR can be authored by a
PAT and trigger downstream CI workflows. Without `PR_GH_TOKEN` it
will fall back behavior is up to GitHub Actions defaults — confirm
the secret exists before the first run.
## Context
Came out of work on `comfy-router#22` + `ComfyUI_frontend#11823`
(comfy.org/countdown subpage / website refresh). Discovered the
8+-day-stale snapshot while auditing the website build path.
┆Issue is synchronized with this [Notion
page](https://app.notion.com/p/PR-11829-feat-ci-add-Release-Website-workflow-to-refresh-Ashby-snapshot-3546d73d3650811eb300d8bcb593c652)
by [Unito](https://www.unito.io)
|
||
|
|
55c5fce522 |
ci: stabilize Vercel website preview URLs per PR (#11478)
## 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> |
||
|
|
836cab1b38 |
fix: deploy website previews via GitHub Actions instead of Vercel auto-deploy (#11289)
## Summary Vercel's auto-deploy triggers on every PR because files outside workspace packages (e.g. `browser_tests/`, `src/`) are treated as global changes by the monorepo skip logic. ## Changes - **What**: Replace Vercel's GitHub integration with a GitHub Action (`ci-vercel-website-preview.yaml`) that uses `paths:` filtering to only deploy when `apps/website/`, `packages/design-system/`, or `packages/tailwind-utils/` change. Add `vercel.json` with `github.enabled: false` to disable Vercel's automatic GitHub integration. ## Setup required after merge Three GitHub repo secrets are needed. All secrets are scoped per-project using the `VERCEL_WEBSITE_*` prefix. Future Vercel projects would follow the same convention (e.g. `VERCEL_DOCS_*`). ### Step 1: Create a Vercel API Token 1. Go to [vercel.com/account/tokens](https://vercel.com/account/tokens) 2. Click **Create Token** 3. Fill in the form: - **Token Name**: `github-actions-website` - **Scope**: Select the **Comfy-Org** team (not "Full Account" — scope it to the team that owns the project) - **Expiration**: Choose **No Expiration** (or set a long expiration like 1 year — if it expires the workflow will silently fail) 4. Click **Create** 5. **Copy the token immediately** — it is only shown once ### Step 2: Get Vercel Org ID and Project ID 1. Go to [vercel.com/comfyui/website-frontend/settings](https://vercel.com/comfyui/website-frontend/settings) 2. Scroll down to the **Project ID** field — copy this value 3. Go to [vercel.com/teams/comfyui/settings](https://vercel.com/teams/comfyui/settings) (Team Settings → General) 4. Find the **Vercel ID** field (also called Team ID / Org ID) — copy this value ### Step 3: Add secrets to GitHub 1. Go to [github.com/Comfy-Org/ComfyUI_frontend/settings/secrets/actions](https://github.com/Comfy-Org/ComfyUI_frontend/settings/secrets/actions) 2. Click **New repository secret** and add each of the three secrets: | Secret name | Value | |---|---| | `VERCEL_WEBSITE_TOKEN` | The token from Step 1 | | `VERCEL_WEBSITE_ORG_ID` | The team/org ID from Step 2 | | `VERCEL_WEBSITE_PROJECT_ID` | The project ID from Step 2 | > **Note:** The `vercel.json` added by this PR (`github.enabled: false`) automatically disables Vercel's built-in auto-deploy — no dashboard changes needed. ## Review Focus - Verify the `paths:` filter covers all dependencies of `apps/website` - Confirm the PR comment logic is sound (creates once, updates on subsequent pushes) --------- Co-authored-by: Alexander Brown <drjkl@comfy.org> Co-authored-by: DrJKL <DrJKL0424@gmail.com> Co-authored-by: Amp <amp@ampcode.com> |