GitHub Workflows
This directory contains GitHub Actions workflow files that automate various aspects of the ComfyUI frontend development and release process.
Note: This documentation is auto-generated from workflow files. Do not edit manually. Run
pnpm workflow:docsto regenerate.
Naming Convention
Workflow files follow a consistent naming pattern: <prefix>-<descriptive-name>.yaml
Category Prefixes
| Prefix | Purpose | Example |
|---|---|---|
ci- |
Testing, linting, validation | ci-json-validation.yaml |
pr- |
PR automation (triggered by labels) | pr-backport.yaml |
release- |
Version management, publishing | release-branch-create.yaml |
api- |
External API type generation | api-update-electron-api-types.yaml |
i18n- |
Internationalization updates | i18n-update-core.yaml |
publish- |
Publishing and deployment | publish-desktop-ui-on-merge.yaml |
version- |
Version management | version-bump-desktop-ui.yaml |
Quick Reference
For label-triggered workflows, add the corresponding label to a PR to trigger the workflow:
claude-review- Trigger AI-powered code reviewNew Browser Test Expectations- Update Playwright test snapshots
For manual workflows, use the "Run workflow" button in the Actions tab.
Workflow Details
CI
ci-json-validation.yaml
Name: CI: JSON Validation
Description: Validates JSON syntax in all tracked .json files (excluding tsconfig*.json) using jq
Triggers: push
ci-lint-format.yaml
Name: CI: Lint Format
Description: Linting and code formatting validation for pull requests
Triggers: pull_request
ci-python-validation.yaml
Name: CI: Python Validation
Description: Validates Python code in tools/devtools directory
Triggers: pull_request, push
ci-tests-e2e-forks.yaml
Name: CI: Tests E2E (Deploy for Forks)
Description: Deploys test results from forked PRs (forks can't access deployment secrets)
ci-tests-e2e.yaml
Name: CI: Tests E2E
Description: End-to-end testing with Playwright across multiple browsers, deploys test reports to Cloudflare Pages
Triggers: pull_request, push
ci-tests-storybook-forks.yaml
Name: CI: Tests Storybook (Deploy for Forks)
Description: Deploys Storybook previews from forked PRs (forks can't access deployment secrets)
ci-tests-storybook.yaml
Name: CI: Tests Storybook
Description: Builds Storybook and runs visual regression testing via Chromatic, deploys previews to Cloudflare Pages
Triggers: workflow_dispatch (manual), pull_request
ci-tests-unit.yaml
Name: CI: Tests Unit
Description: Unit and component testing with Vitest
Triggers: pull_request, push
PR
pr-backport.yaml
Name: PR Backport
Description: Automatically backports merged PRs to release branches when 'needs-backport' label is applied
Triggers: workflow_dispatch (manual), pull_request_target (closed, labeled)
pr-claude-review.yaml
Name: PR: Claude Review
Description: AI-powered code review triggered by adding the 'claude-review' label to a PR
Triggers: pull_request (labeled)
Label Triggers: claude-review
pr-update-playwright-expectations.yaml
Name: PR: Update Playwright Expectations
Description: Updates Playwright test snapshots when triggered by label or comment
Triggers: pull_request (labeled), issue_comment (created)
Label Triggers: New Browser Test Expectations, /update-playwright
RELEASE
release-branch-create.yaml
Name: Release Branch Create
Description: Creates release branch when version bump PR with 'Release' label is merged
Triggers: pull_request (closed)
release-draft-create.yaml
Name: Release Draft Create
Description: Creates GitHub release draft when version bump PR with 'Release' label is merged
Triggers: pull_request (closed)
release-npm-types.yaml
Name: Release NPM Types
Description: Manual workflow to publish TypeScript type definitions to npm
Triggers: workflow_dispatch (manual)
release-pypi-dev.yaml
Name: Release PyPI Dev
Description: Manual workflow to publish development version to PyPI
Triggers: workflow_dispatch (manual)
release-version-bump.yaml
Name: Release: Version Bump
Description: Manual workflow to increment package version with semantic versioning support
Triggers: workflow_dispatch (manual)
API
api-update-electron-api-types.yaml
Name: Api: Update Electron API Types
Description: When upstream electron API is updated, click dispatch to update the TypeScript type definitions in this repo
Triggers: workflow_dispatch (manual)
api-update-manager-api-types.yaml
Name: Api: Update Manager API Types
Description: When upstream ComfyUI-Manager API is updated, click dispatch to update the TypeScript type definitions in this repo
Triggers: workflow_dispatch (manual)
api-update-registry-api-types.yaml
Name: Api: Update Registry API Types
Description: When upstream comfy-api is updated, click dispatch to update the TypeScript type definitions in this repo
Triggers: workflow_dispatch (manual)
I18N
i18n-update-core.yaml
Name: i18n: Update Core
Description: Generates and updates translations for core ComfyUI components using OpenAI
Triggers: workflow_dispatch (manual), pull_request (opened, synchronize, reopened)
i18n-update-custom-nodes.yaml
Name: i18n Update Custom Nodes
Description: Updates translations for custom node repositories using OpenAI
Triggers: workflow_dispatch (manual)
i18n-update-nodes.yaml
Name: i18n Update Nodes
Description: Updates translations for ComfyUI node definitions
Triggers: workflow_dispatch (manual)
PUBLISH
publish-desktop-ui-on-merge.yaml
Name: Publish Desktop UI on PR Merge
Description: Automatically publishes desktop UI package to npm when version bump PR is merged
Triggers: pull_request (closed)
publish-desktop-ui.yaml
Name: Publish Desktop UI
Description: Manual workflow to publish desktop UI package to npm with specified version
Triggers: workflow_dispatch (manual)
VERSION
version-bump-desktop-ui.yaml
Name: Version Bump Desktop UI
Description: Manual workflow to increment desktop UI package version with semantic versioning support
Triggers: workflow_dispatch (manual)
Documentation
For more information about GitHub Actions, see:
Maintaining Workflows
Adding a New Workflow
- Create a new workflow file following the naming convention
- Include
nameanddescriptionfields at the top of the workflow - Run
pnpm workflow:docsto update this README - Commit both the workflow file and updated README
Best Practices
- Always include a description: Add a
descriptionfield after thenamefield - Use consistent prefixes: Follow the established prefix conventions
- Label-triggered workflows: For PR automation, use the
pr-prefix - Document triggers: Make trigger conditions clear in the workflow description
- Keep docs in sync: Run
pnpm workflow:docsafter any workflow changes