refactor: reorganize GitHub workflows with consistent naming convention

- Implement systematic naming convention using category prefixes
- Group workflows logically: ci-, pr-, release-, types-, i18n-
- Rename all 22 workflows for better organization and discoverability
- Update workflow cross-references and display names
- Add comprehensive README.md with naming guidelines and best practices

Key changes:
- CI workflows: ci-tests-e2e, ci-tests-unit, ci-tests-storybook, etc.
- PR automation: pr-backport, pr-claude-review, pr-playwright-snapshots
- Release management: release-version-bump, release-npm-types, etc.
- Type generation: types-registry-api, types-manager-api, etc.
- Internationalization: i18n-update-core, i18n-update-nodes, etc.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
snomiao
2025-10-02 07:54:59 +00:00
parent 31c85387ba
commit 67af73605d
23 changed files with 117 additions and 25 deletions

88
.github/workflows/README.md vendored Normal file
View File

@@ -0,0 +1,88 @@
# GitHub Workflows Documentation
## Naming Convention
All workflow files follow a consistent naming pattern for improved organization and discoverability.
### File Naming Format
```
<prefix>-<descriptive-name>.yaml
```
**Rules:**
1. Use `.yaml` extension consistently (not `.yml`)
2. Use lowercase letters only
3. Use hyphens (`-`) as word separators
4. Start with a category prefix (see below)
5. Follow prefix with a descriptive name that clearly indicates the workflow's purpose
### Category Prefixes
| Prefix | Category | Purpose | Example |
|--------|----------|---------|---------|
| `ci-` | Continuous Integration | Testing, linting, validation workflows | `ci-tests-e2e.yaml` |
| `release-` | Release Management | Version bumps, release branches, release drafts | `release-version-bump.yaml` |
| `pr-` | PR Automation | PR-specific workflows triggered by labels | `pr-claude-review.yaml` |
| `types-` | Type Generation | TypeScript type generation and updates | `types-registry-api.yaml` |
| `i18n-` | Internationalization | Locale and translation updates | `i18n-update-core.yaml` |
## Workflow Organization
### Test Workflows (`ci-tests-*`)
- `ci-tests-e2e.yaml` - End-to-end testing with Playwright
- `ci-tests-unit.yaml` - Unit and component testing with Vitest
- `ci-tests-storybook.yaml` - Storybook build and visual regression testing
- `ci-tests-*-forks.yaml` - Fork-safe deployment workflows (deploy results without exposing secrets)
### PR Label Workflows (`pr-*`)
These workflows are triggered when specific labels are added to PRs:
| Workflow | Trigger Label | Purpose |
|----------|---------------|---------|
| `pr-backport.yaml` | `needs-backport` | Cherry-pick PRs to release branches |
| `pr-claude-review.yaml` | `claude-review` | AI-powered code review |
| `pr-playwright-snapshots.yaml` | `New Browser Test Expectations` | Update visual test snapshots |
## Workflow Triggers
### Common Trigger Patterns
| Trigger Type | Use Case | Example |
|--------------|----------|---------|
| `push` to main/master | Production CI/CD | Deploy to production |
| `pull_request` | PR validation | Run tests, linting |
| `workflow_dispatch` | Manual execution | On-demand deployments |
| `repository_dispatch` | External triggers | API type updates |
| `workflow_run` | Chain workflows | Fork deployments |
| `schedule` | Periodic tasks | Nightly builds |
| Label added | Conditional actions | Review requests, snapshots |
### Branch Protection Patterns
- **Main branches**: `main`, `master`
- **Release branches**: `core/**`, `release/**`
- **Development branches**: `dev/**`, `develop/**`
- **Desktop branches**: `desktop/**`
- **WIP exclusion**: `!**wip/**`, `!wip/**`
## Best Practices
1. **Consistency**: Always use the naming convention for new workflows
2. **Documentation**: Update this README when adding new prefixes or patterns
3. **Permissions**: Use minimal required permissions for security
4. **Caching**: Leverage GitHub Actions cache for dependencies and build artifacts
5. **Concurrency**: Use concurrency groups to prevent duplicate runs
6. **Secrets**: Never hardcode secrets; use GitHub Secrets
7. **Fork Support**: Consider fork limitations when designing workflows
8. **Error Handling**: Include proper error handling and status checks
9. **Reusability**: Use workflow_call for shared logic across workflows
## External Dependencies
- **Cloudflare Pages**: Deployment platform for previews and test reports
- **Chromatic**: Visual regression testing for Storybook
- **OpenAI API**: Translation generation for i18n workflows
- **PyPI**: Python package distribution
- **npm Registry**: TypeScript types distribution
- **Claude API**: AI code review

View File

@@ -1,4 +1,4 @@
name: Validate JSON
name: JSON Validation CI
on:
push:

View File

@@ -1,4 +1,4 @@
name: Lint and Format
name: Lint Format CI
on:
pull_request:

View File

@@ -1,4 +1,4 @@
name: Devtools Python Check
name: Python Validation CI
on:
pull_request:

View File

@@ -1,8 +1,10 @@
name: PR Playwright Deploy (Forks)
name: Tests E2E Forks CI
# Deploys test results from forked PRs (forks can't access deployment secrets)
on:
workflow_run:
workflows: ["Tests CI"]
workflows: ["Tests E2E CI"]
types: [requested, completed]
env:

View File

@@ -1,4 +1,4 @@
name: Tests CI
name: Tests E2E CI
on:
push:

View File

@@ -1,8 +1,10 @@
name: PR Storybook Deploy (Forks)
name: Tests Storybook Forks CI
# Deploys Storybook previews from forked PRs (forks can't access deployment secrets)
on:
workflow_run:
workflows: ['Storybook and Chromatic CI']
workflows: ['Tests Storybook CI']
types: [requested, completed]
env:

View File

@@ -1,4 +1,4 @@
name: Storybook and Chromatic CI
name: Tests Storybook CI
# - [Automate Chromatic with GitHub Actions • Chromatic docs]( https://www.chromatic.com/docs/github-actions/ )

View File

@@ -1,4 +1,4 @@
name: Vitest Tests
name: Tests Unit CI
on:
push:

View File

@@ -1,4 +1,4 @@
name: Update Locales
name: i18n Update Core
on:
# Manual dispatch for urgent translation updates

View File

@@ -1,4 +1,4 @@
name: Update Locales for given custom node repository
name: i18n Update Custom Nodes
on:
workflow_dispatch:

View File

@@ -1,4 +1,4 @@
name: Update Node Definitions Locales
name: i18n Update Nodes
on:
workflow_dispatch:

View File

@@ -1,4 +1,4 @@
name: Auto Backport
name: PR Backport
on:
pull_request_target:

View File

@@ -1,4 +1,4 @@
name: Claude PR Review
name: PR Claude Review
permissions:
contents: read

View File

@@ -1,5 +1,5 @@
# Setting test expectation screenshots for Playwright
name: Update Playwright Expectations
name: PR Playwright Snapshots
on:
pull_request:

View File

@@ -1,4 +1,4 @@
name: Create Release Branch
name: Release Branch Create
on:
pull_request:

View File

@@ -1,4 +1,4 @@
name: Create Release Draft
name: Release Draft Create
on:
pull_request:
@@ -126,7 +126,7 @@ jobs:
publish_types:
needs: build
uses: ./.github/workflows/publish-frontend-types.yaml
uses: ./.github/workflows/release-npm-types.yaml
with:
version: ${{ needs.build.outputs.version }}
ref: ${{ github.event.pull_request.merge_commit_sha }}

View File

@@ -1,4 +1,4 @@
name: Publish Frontend Types
name: Release NPM Types
on:
workflow_dispatch:

View File

@@ -1,4 +1,4 @@
name: Create Dev PyPI Package
name: Release PyPI Dev
on:
workflow_dispatch:

View File

@@ -1,4 +1,4 @@
name: Version Bump
name: Release Version Bump
on:
workflow_dispatch:

View File

@@ -1,4 +1,4 @@
name: Update Electron Types
name: Types Electron API
on:
workflow_dispatch:

View File

@@ -1,4 +1,4 @@
name: Update ComfyUI-Manager API Types
name: Types Manager API
on:
# Manual trigger

View File

@@ -1,4 +1,4 @@
name: Update Comfy Registry API Types
name: Types Registry API
on:
# Manual trigger