mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-30 21:09:53 +00:00
## Summary This PR refactors the GitHub Actions workflow structure to improve reusability, maintainability, and CI performance. ## Changes ### New Actions - **setup-comfyui-server**: New composite action that handles ComfyUI server setup and launch - Checks out ComfyUI repository - Installs ComfyUI_devtools custom node - Sets up Python environment and dependencies - Optionally launches the server with configurable parameters ### Refactored Actions - **setup-frontend**: Simplified to focus only on frontend-specific tasks - Installs pnpm and Node.js - Installs dependencies - Optionally builds the frontend (can be skipped when using cached builds) - No longer handles server setup or checkout ### Workflow Improvements #### tests-ci.yaml - Introduced a setup job that builds once and caches the entire workspace - Test jobs now restore the cached workspace instead of rebuilding - Eliminated redundant setup steps in each test shard - Better separation between setup and test execution phases - Significant performance improvement through workspace caching #### Locale Update Workflows - Updated `update-locales.yaml` to use the new action structure - Updated `update-locales-for-given-custom-node-repository.yaml` with proper custom node installation - Updated `update-node-definitions-locales.yaml` to use new actions - Removed `working-directory` references where appropriate #### Other Workflows - Updated `update-playwright-expectations.yaml` to use new action structure - Consistent action usage across all workflows ## Benefits 1. **Better Performance**: Workspace caching eliminates redundant builds in CI, significantly reducing test execution time 2. **Improved Maintainability**: Clear separation of concerns makes actions easier to understand and modify 3. **Enhanced Reusability**: Actions can be composed in different ways for different workflows 4. **DRY Principle**: Eliminated code duplication across workflows 5. **Easier Debugging**: Smaller, focused actions make it easier to identify and fix issues ## Testing - [ ] Verify tests-ci workflow runs successfully - [ ] Verify locale update workflows function correctly - [ ] Verify playwright expectations update workflow works - [ ] Confirm cache/restore mechanism works as expected ## Related Issues This refactoring addresses workflow complexity and reduces CI runtime by leveraging GitHub Actions caching more effectively. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-5949-refactor-Reorganize-GitHub-Actions-for-better-reusability-2846d73d365081ae8e16f151423b5a88) by [Unito](https://www.unito.io) --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Alexander Brown <drjkl@comfy.org> Co-authored-by: DrJKL <DrJKL0424@gmail.com>
56 lines
2.0 KiB
YAML
56 lines
2.0 KiB
YAML
name: Setup ComfyUI Server
|
|
description: 'Setup ComfyUI server for continuous integration (with ComfyUI_devtools node installed)'
|
|
inputs:
|
|
extra_server_params:
|
|
description: 'Additional parameters to pass to ComfyUI server'
|
|
required: false
|
|
default: ''
|
|
launch_server:
|
|
description: 'Whether to launch the server after setup'
|
|
required: false
|
|
default: 'false'
|
|
runs:
|
|
using: 'composite'
|
|
steps:
|
|
# Note: this workflow assume frontend repo is checked out and is built in ../dist
|
|
|
|
# Checkout ComfyUI repo, install the dev_tools node and start server
|
|
- name: Checkout ComfyUI
|
|
uses: actions/checkout@v5
|
|
with:
|
|
repository: 'comfyanonymous/ComfyUI'
|
|
path: 'ComfyUI'
|
|
|
|
- name: Install ComfyUI_devtools from frontend repo
|
|
shell: bash
|
|
run: |
|
|
mkdir -p ComfyUI/custom_nodes/ComfyUI_devtools
|
|
if ! cp -r ./tools/devtools/* ComfyUI/custom_nodes/ComfyUI_devtools/; then
|
|
echo "::error::Failed to copy ComfyUI_devtools from ./tools/devtools/"
|
|
echo "::error::This action assumes the ComfyUI_frontend repository is checked out in the current working directory."
|
|
echo "::error::Please ensure you have run 'actions/checkout@v5' before calling this action."
|
|
exit 1
|
|
fi
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Install Python requirements
|
|
shell: bash
|
|
working-directory: ComfyUI
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
|
|
pip install -r requirements.txt
|
|
pip install wait-for-it
|
|
|
|
- name: Start ComfyUI server
|
|
if: ${{ inputs.launch_server == 'true' }}
|
|
shell: bash
|
|
working-directory: ComfyUI
|
|
run: |
|
|
python main.py --cpu --multi-user --front-end-root ../dist ${{ inputs.extra_server_params }} &
|
|
wait-for-it --service 127.0.0.1:8188 -t 600
|