Files
ComfyUI_frontend/.github/workflows
Glary-Bot 30c106d972 fix(website): slugify cloud-node pack ids and mock e2e snapshot
The website's /cloud/supported-nodes routes use pack ids as URL segments,
but pack ids come straight from upstream Python module names which mix
PascalCase, snake_case, and kebab-case freely. After a Release: Website
snapshot refresh that surfaced packs like ComfyUI-Crystools and
basic_data_handling, the Playwright assertions in cloud-nodes.spec.ts
broke because the slug regex requires kebab-case and the hardcoded
comfyui-impact-pack assertions assumed registry contents would never
change.

Two coordinated fixes:

* slugifyPackId in @comfyorg/object-info-parser normalizes every pack
  id (lowercase + _\u2192-) at the boundaries where it enters the website:
  groupNodesByPack for fresh fetches and readSnapshot for the bundled
  fallback. The raw upstream id is preserved as rawId/registryId so
  registry enrichment continues to hit https://api.comfy.org/nodes
  with the exact node_id the API expects. Packs whose raw ids collide
  on the same slug (24 such pairs exist in the live registry today,
  e.g. ComfyUI-QwenVL + ComfyUI_QwenVL) are merged deterministically
  instead of producing duplicate static routes.

* WEBSITE_CLOUD_NODES_FIXTURE lets the e2e build read a committed
  fixture snapshot in place of the bundled one. CI sets it to
  e2e/fixtures/cloud-nodes.fixture.json so Playwright assertions run
  against deterministic pack content; future snapshot refreshes can
  no longer break the test contract by removing the Impact Pack or
  adding underscored ids.

Verification:
* 99/99 desktop Playwright tests pass against the fixture-built site
* 81/81 website Vitest unit tests pass (including new build/fixture
  coverage)
* 48/48 object-info-parser tests pass (11 new slugifyPackId cases,
  4 new groupNodesByPack cases)
* astro check: 0 errors
2026-05-14 19:54:30 +00:00
..

GitHub Workflows

Naming Convention

Workflow files follow a consistent naming pattern: <prefix>-<descriptive-name>.yaml

Category Prefixes

Prefix Purpose Example
ci- Testing, linting, validation ci-tests-e2e.yaml
release- Version management, publishing release-version-bump.yaml
pr- PR automation (triggered by labels) pr-claude-review.yaml
api- External Api type generation api-update-registry-api-types.yaml
i18n- Internationalization updates i18n-update-core.yaml

Documentation

Each workflow file contains comments explaining its purpose, triggers, and behavior. For specific details about what each workflow does, refer to the comments at the top of each .yaml file.

For GitHub Actions documentation, see Events that trigger workflows.