mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-26 19:09:52 +00:00
* [ci] Enhance CI/CD caching across all workflows - Add tool cache steps for node_modules/.cache, .cache, and .eslintcache - Enable npm caching for Node.js setup actions where missing - Add cache configurations for ESLint, Prettier, Knip, and other build tools - Improve build performance by caching tool outputs between runs - Use unique cache keys per workflow to avoid conflicts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [ci] Enhance CI/CD caching with comprehensive improvements Extends caching strategy beyond PR #5107 with additional optimizations: - **i18n.yaml**: Add tool cache for locale generation workflow - **update-electron-types.yaml**: Add tool cache for type updates - **test-ui.yaml**: Add Playwright browser cache and Python pip cache - **vitest.yaml**: Add coverage directory caching - **chromatic.yaml**: Add Storybook static build cache - **All build workflows**: Add TypeScript incremental build cache - **Type generation workflows**: Add repository caching for external repos - **lint-and-format.yaml**: Improve cache key granularity with source hash Performance improvements: - Playwright browser downloads cached across runs - Python pip dependencies cached - TSC incremental compilation cache preserved - Storybook static builds cached - External repository clones cached - More granular cache invalidation based on source changes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [ci] Optimize CI/CD caching for better performance - Enhance cache keys with more specific file patterns for better cache hit rates - Add missing cache directories (.prettierCache, .knip-cache, .vitest-cache, tsconfig.tsbuildinfo) - Improve cache key naming for clarity (lint-format, vitest, storybook, playwright) - Add better fallback cache restore keys - Include browser-specific caching for Playwright tests - Add TypeScript build info caching across workflows Expected improvements: - 20-40% faster builds on cache hits - More granular cache invalidation - Better cache utilization across tools 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Apply suggestion from @DrJKL Co-authored-by: Alexander Brown <drjkl@comfy.org> * Apply suggestion from @DrJKL Co-authored-by: Alexander Brown <drjkl@comfy.org> * Apply suggestion from @DrJKL Co-authored-by: Alexander Brown <drjkl@comfy.org> * Apply suggestion from @DrJKL Co-authored-by: Alexander Brown <drjkl@comfy.org> * Apply suggestion from @DrJKL Co-authored-by: Alexander Brown <drjkl@comfy.org> * Apply suggestion from @DrJKL Co-authored-by: Alexander Brown <drjkl@comfy.org> * [ci] Remove redundant node_modules/.cache from workflow caches setup-node already handles node_modules caching when cache: 'npm' is enabled. Removed conflicting node_modules/.cache entries from: - .github/workflows/lint-and-format.yaml - .github/workflows/vitest.yaml - .github/workflows/test-ui.yaml This prevents cache conflicts and follows best practices for npm caching. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Update .github/workflows/chromatic.yaml Co-authored-by: Alexander Brown <drjkl@comfy.org> * Update .github/workflows/update-electron-types.yaml Co-authored-by: Alexander Brown <drjkl@comfy.org> * fix: address reviewer feedback on cache optimization PR (#5200) * fix: remove duplicate cache entries and fix YAML formatting - Remove duplicate path entries in dev-release.yaml - Remove redundant node_modules/.cache entries since setup-node handles npm caching - Fix YAML indentation issues across workflow files Addresses reviewer feedback on PR #5117 about duplication and maintenance * fix: add cache-dependency-path for setup-node in test-ui workflow The test-ui workflow runs at repo root but package-lock.json is in ComfyUI_frontend/ subdirectory, causing setup-node cache to fail. Added cache-dependency-path to fix this. --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Alexander Brown <drjkl@comfy.org> Co-authored-by: Christian Byrne <cbyrne@comfy.org>
86 lines
2.5 KiB
YAML
86 lines
2.5 KiB
YAML
name: Create Dev PyPI Package
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
devVersion:
|
|
description: 'Dev version'
|
|
required: true
|
|
type: number
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
version: ${{ steps.current_version.outputs.version }}
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 'lts/*'
|
|
cache: 'npm'
|
|
|
|
- name: Cache tool outputs
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
.cache
|
|
dist
|
|
tsconfig.tsbuildinfo
|
|
key: dev-release-tools-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
|
|
restore-keys: |
|
|
dev-release-tools-cache-${{ runner.os }}-
|
|
|
|
- name: Get current version
|
|
id: current_version
|
|
run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
|
|
- name: Build project
|
|
env:
|
|
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
|
|
ALGOLIA_APP_ID: ${{ secrets.ALGOLIA_APP_ID }}
|
|
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
|
|
USE_PROD_CONFIG: 'true'
|
|
run: |
|
|
npm ci
|
|
npm run build
|
|
npm run zipdist
|
|
- name: Upload dist artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: dist-files
|
|
path: |
|
|
dist/
|
|
dist.zip
|
|
|
|
publish_pypi:
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
- name: Download dist artifact
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: dist-files
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.x'
|
|
- name: Install build dependencies
|
|
run: python -m pip install build
|
|
- name: Setup pypi package
|
|
run: |
|
|
mkdir -p comfyui_frontend_package/comfyui_frontend_package/static/
|
|
cp -r dist/* comfyui_frontend_package/comfyui_frontend_package/static/
|
|
- name: Build pypi package
|
|
run: python -m build
|
|
working-directory: comfyui_frontend_package
|
|
env:
|
|
COMFYUI_FRONTEND_VERSION: ${{ format('{0}.dev{1}', needs.build.outputs.version, inputs.devVersion) }}
|
|
- name: Publish pypi package
|
|
uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc
|
|
with:
|
|
password: ${{ secrets.PYPI_TOKEN }}
|
|
packages-dir: comfyui_frontend_package/dist
|