mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-05 07:30:11 +00:00
This PR introduces a reusable composite action for Playwright setup to reduce duplication across workflows. ## Changes - Created `.github/actions/setup-playwright/action.yml` composite action that: - Detects or uses provided Playwright version - Caches Playwright browsers with intelligent cache keys - Installs browsers only when cache miss occurs - Installs OS dependencies when cache hit occurs ## Technical Details - **Important:** The composite action requires `shell: bash` for all `run` steps as per [GitHub Actions requirements for composite actions](https://docs.github.com/en/actions/creating-actions/creating-a-composite-action#creating-an-action-metadata-file). This is a mandatory field for composite actions, unlike regular workflow steps. - Updated workflow paths to account for repository checkout locations (some workflows checkout to subdirectories like `ComfyUI_frontend/`) - Uses conditional caching to avoid redundant browser installations ## Benefits - Reduces code duplication across 6 workflow files - Centralizes Playwright caching logic - Consistent browser setup across all workflows - Easier maintenance and updates - Faster CI runs through intelligent caching ## Affected Workflows - `.github/workflows/test-ui.yaml` (2 uses) - `.github/workflows/i18n-custom-nodes.yaml` - `.github/workflows/i18n-node-defs.yaml` - `.github/workflows/i18n.yaml` - `.github/workflows/test-browser-exp.yaml` --------- Co-authored-by: GitHub Action <action@github.com>
31 lines
1.2 KiB
YAML
31 lines
1.2 KiB
YAML
name: Setup Playwright
|
|
description: Cache and install Playwright browsers with dependencies
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Detect Playwright version
|
|
id: detect-version
|
|
shell: bash
|
|
working-directory: ComfyUI_frontend
|
|
run: |
|
|
PLAYWRIGHT_VERSION=$(pnpm ls @playwright/test --json | jq --raw-output '.[0].devDependencies["@playwright/test"].version')
|
|
echo "playwright-version=$PLAYWRIGHT_VERSION" >> $GITHUB_OUTPUT
|
|
|
|
- name: Cache Playwright Browsers
|
|
uses: actions/cache@v4
|
|
id: cache-playwright-browsers
|
|
with:
|
|
path: '~/.cache/ms-playwright'
|
|
key: ${{ runner.os }}-playwright-browsers-${{ steps.detect-version.outputs.playwright-version }}
|
|
|
|
- name: Install Playwright Browsers
|
|
if: steps.cache-playwright-browsers.outputs.cache-hit != 'true'
|
|
shell: bash
|
|
run: pnpm exec playwright install chromium --with-deps
|
|
working-directory: ComfyUI_frontend
|
|
|
|
- name: Install Playwright Browsers (operating system dependencies)
|
|
if: steps.cache-playwright-browsers.outputs.cache-hit == 'true'
|
|
shell: bash
|
|
run: pnpm exec playwright install-deps
|
|
working-directory: ComfyUI_frontend |