diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ffaedaf..275345a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -2,7 +2,7 @@ name: CI on: push: - branches: [main, v2] + branches: [main] pull_request: branches: [main] @@ -35,6 +35,12 @@ jobs: - name: Build run: pnpm build + - name: Cache built extension + uses: actions/cache@v4 + with: + path: dist/index.js + key: ${{ runner.os }}-dist-${{ github.sha }} + e2e-tests: name: E2E Tests runs-on: ubuntu-latest @@ -55,14 +61,31 @@ jobs: - name: Install dependencies run: pnpm install + - name: Restore built extension + uses: actions/cache@v4 + with: + path: dist/index.js + key: ${{ runner.os }}-dist-${{ github.sha }} + + - name: Cache Playwright browsers + uses: actions/cache@v4 + with: + path: ~/.cache/ms-playwright + key: ${{ runner.os }}-playwright-${{ hashFiles('pnpm-lock.yaml') }} + - name: Install Playwright browsers run: pnpx playwright install chromium --with-deps - - name: Build extension - run: pnpm build - - name: Install uv uses: astral-sh/setup-uv@v6 + with: + enable-cache: true + + - name: Cache test ComfyUI environment + uses: actions/cache@v4 + with: + path: .test-comfy + key: ${{ runner.os }}-test-comfy-${{ hashFiles('.python-version', 'e2e.config.ts', 'scripts/setup-test-comfy.ts', 'scripts/setup-test-comfy-helpers.ts') }} - name: Setup test ComfyUI run: pnpm setup:e2e diff --git a/.github/workflows/publish_action.yaml b/.github/workflows/publish_action.yaml index 7249389..61d6494 100644 --- a/.github/workflows/publish_action.yaml +++ b/.github/workflows/publish_action.yaml @@ -56,9 +56,21 @@ jobs: - name: Build run: pnpm build + - name: Cache Playwright browsers + uses: actions/cache@v4 + with: + path: ~/.cache/ms-playwright + key: ${{ runner.os }}-playwright-${{ hashFiles('pnpm-lock.yaml') }} + - name: Install Playwright browsers run: pnpx playwright install chromium --with-deps + - name: Cache test ComfyUI environment + uses: actions/cache@v4 + with: + path: .test-comfy + key: ${{ runner.os }}-test-comfy-${{ hashFiles('.python-version', 'e2e.config.ts', 'scripts/setup-test-comfy.ts', 'scripts/setup-test-comfy-helpers.ts') }} + - name: Setup test ComfyUI run: pnpm setup:e2e timeout-minutes: 15 diff --git a/AGENTS.md b/AGENTS.md index 0e095fe..aa197fa 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -53,9 +53,9 @@ Version bumping: - Installed `comfyui-workflow-templates` are discovered live at E2E runtime from the pinned test ComfyUI environment. - Broad installed-template coverage asserts correctness invariants only; strict topological order remains repo-fixture-only. - Visual regression is graph-canvas scoped and uses platform-specific `-win32` / `-linux` baselines. -- `pnpm ci:local` covers unit/build parity only. +- `pnpm ci:local` runs the full local CI workflow with `act`. ## Known Friction - Some real ComfyUI workflows load with imperfect group rectangles. Verify against live runtime before changing containment behavior. -- A small number of real installed templates have topological-order violations due to complex inter-group connections. Tracked for v2.1. +- A small number of real installed templates have topological-order violations due to complex inter-group connections. Tracked for a future minor release. diff --git a/README.md b/README.md index 577921f..73aa395 100644 --- a/README.md +++ b/README.md @@ -62,9 +62,7 @@ Visual regression baselines are platform-specific: committed snapshots use `-win Install [act](https://github.com/nektos/act) and Docker, then run: -- `pnpm ci:local` runs the unit-test and build workflow inside a local container - -E2E tests still require the normal local ComfyUI provisioning flow and are not part of the `act` path yet. +- `pnpm ci:local` runs the full local CI workflow with `act` ## Release diff --git a/package.json b/package.json index 854e839..ac3d115 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "test:coverage": "vitest run --coverage", "setup:e2e": "tsx scripts/setup-test-comfy.ts", "test:e2e": "playwright test", - "ci:local": "act push --workflows .github/workflows/ci.yaml -j unit-tests" + "ci:local": "act push --workflows .github/workflows/ci.yaml" }, "keywords": [ "comfyui", diff --git a/playwright.config.ts b/playwright.config.ts index 08c07f1..7d6192e 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -8,7 +8,10 @@ export default defineConfig({ forbidOnly: !!process.env.CI, retries: process.env.CI ? 2 : 0, workers: 8, - reporter: "html", + reporter: [ + ["line"], + ["html", { open: "never" }], + ], use: { baseURL: e2eConfig.comfyUrl, trace: "on-first-retry", diff --git a/src/layout/framework.ts b/src/layout/framework.ts index 9ba0d7b..443024a 100644 --- a/src/layout/framework.ts +++ b/src/layout/framework.ts @@ -1,7 +1,7 @@ /** * Core layout framework — recursive group-aware layout orchestration. * - * This is the architectural foundation of v2. It handles: + * This is the architectural foundation of the current layout system. It handles: * - Bottom-up group hierarchy processing * - Delegating to a pluggable LayoutAlgorithm * - Disconnected node placement (left of DAG at each level) diff --git a/src/layout/types.ts b/src/layout/types.ts index c893e45..83c6d0e 100644 --- a/src/layout/types.ts +++ b/src/layout/types.ts @@ -1,6 +1,6 @@ /** * Pure layout types — no ComfyUI/LGraph dependencies. - * These are the abstract types for the v2 layout framework. + * These are the abstract types for the layout framework. */ /** Position as a simple object */ diff --git a/tests/e2e/regression.test.ts b/tests/e2e/regression.test.ts index 6246b5b..da31f66 100644 --- a/tests/e2e/regression.test.ts +++ b/tests/e2e/regression.test.ts @@ -1,5 +1,5 @@ /** - * Regression tests for v1 bugs that must not recur in v2. + * Regression tests for legacy bugs that must not recur. * * Each test targets a specific issue from the v1 changeset history: * - 0006: Y explosion (groups centering against tallest layer) @@ -20,7 +20,7 @@ import { } from "./helpers"; import { loadFixture } from "./fixtures"; -test.describe("Regression: v1 bug fixes", () => { +test.describe("Regression: legacy bug fixes", () => { test.beforeEach(async ({ page }) => { await page.goto("/"); await waitForComfyUI(page);