mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-02 22:37:32 +00:00
## Overview Removes **all `actions/cache` steps** from GitHub Actions workflows after empirical testing showed that they actually **slow down CI/CD by 11%** rather than speeding it up. ## Context As discussed in #5988, the codebase has evolved with components moving into the `/packages` directory structure. The review comment suggested removing the entire `actions/cache` step rather than just the `.cache` path to properly evaluate performance impact. ## Performance Benchmark Results Empirical testing on this PR (commits38695ae0bvsab16635c5) revealed that **removing cache steps improves CI performance across all workflows**: | Workflow | WITHOUT Cache | WITH Cache | Improvement | |----------|---------------|------------|-------------| | **CI: Lint Format** | 208s (3m 28s) | 226s (3m 46s) | **-18s (-8.7%)** ⚡ | | **CI: Tests Unit** | 160s (2m 40s) | 177s (2m 57s) | **-17s (-10.6%)** ⚡ | | **CI: Tests Storybook** | 65s (1m 5s) | 78s (1m 18s) | **-13s (-20.0%)** ⚡ | | **Total Pipeline** | **433s (7m 13s)** | **481s (8m 1s)** | **-48s (-11.1%)** ⚡ | ### Why is caching slower? 1. **Cache overhead exceeds benefits**: Time spent saving/restoring cache > time saved from cached content 2. **Complex cache key computation**: Hash calculations for file patterns add processing time 3. **Network I/O cost**: Each cache step adds network round-trips 4. **Tools already optimize incrementally**: ESLint, Vitest, Prettier handle their own incremental checks efficiently ## Changes Removed the entire `actions/cache` step from 8 workflow files: - `ci-lint-format.yaml` - Removed tool outputs cache (.eslintcache, .prettierCache, .knip-cache, tsconfig.tsbuildinfo) - `ci-tests-storybook.yaml` - Removed storybook-static and tsconfig.tsbuildinfo cache (both jobs) - `ci-tests-unit.yaml` - Removed coverage and .vitest-cache - `api-update-electron-api-types.yaml` - Removed tsconfig.tsbuildinfo cache - `api-update-manager-api-types.yaml` - Removed tool cache and ComfyUI-Manager repo cache - `api-update-registry-api-types.yaml` - Removed tool cache and comfy-api repo cache - `release-draft-create.yaml` - Removed tsconfig.tsbuildinfo cache - `release-pypi-dev.yaml` - Removed dist and tsconfig.tsbuildinfo cache **What remains cached:** - ✅ pnpm packages via `cache: 'pnpm'` in setup-node actions (the most valuable cache) - ✅ Tool-specific incremental caches generated fresh each run - ✅ Docker layer caching (where applicable) ## Testing - ✅ Empirical performance testing completed (see benchmark results above) - ✅ All cache steps removed successfully - ✅ No structural changes to workflow logic - ✅ pnpm package caching remains active ## Conclusion The benchmark data clearly shows that removing `actions/cache` steps results in **faster, simpler CI workflows**. The overhead of cache management exceeds any benefit, especially with pnpm package caching already handling the most time-consuming dependency installations. **Recommendation: ✅ Proceed with this change** ## Test Methodology 1. **WITHOUT cache** (commit [38695ae0b](https://github.com/Comfy-Org/ComfyUI_frontend/commit/38695ae0b)): Removed all `actions/cache` steps → [Workflow run](https://github.com/Comfy-Org/ComfyUI_frontend/actions/runs/18654024806) 2. **WITH cache** (commit [ab16635c5](https://github.com/Comfy-Org/ComfyUI_frontend/commit/ab16635c5)): Temporarily restored all `actions/cache` steps → [Workflow run](https://github.com/Comfy-Org/ComfyUI_frontend/actions/runs/18654143363) 3. **Final state** (commit [3ce876f87](https://github.com/Comfy-Org/ComfyUI_frontend/commit/3ce876f87)): Restored no-cache version (current) Fixes #5988 --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: snomiao <7323030+snomiao@users.noreply.github.com> Co-authored-by: snomiao <snomiao@gmail.com> Co-authored-by: Claude <noreply@anthropic.com>
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.