diff --git a/.github/workflows/ci-tests-e2e.yaml b/.github/workflows/ci-tests-e2e.yaml index 5a2cc028b09..54e5e358866 100644 --- a/.github/workflows/ci-tests-e2e.yaml +++ b/.github/workflows/ci-tests-e2e.yaml @@ -147,9 +147,51 @@ jobs: path: ./playwright-report/ retention-days: 30 + playwright-tests-windows: + timeout-minutes: 20 + # needs: setup -- removed dependency on setup job cache + runs-on: windows-latest + permissions: + contents: read + strategy: + fail-fast: false + matrix: + shard: [1, 2, 3, 4, 5, 6, 7, 8] + steps: + - name: Checkout repository + uses: actions/checkout@v5 + + - name: Setup ComfyUI server + uses: ./.github/actions/setup-comfyui-server + with: + launch_server: true + - name: Setup nodejs, pnpm, reuse built frontend + uses: ./.github/actions/setup-frontend + with: + include_build_step: true # Build explicitly on Windows since we aren't restoring cache + - name: Setup Playwright + uses: ./.github/actions/setup-playwright + + - name: Run Playwright tests (Windows - chromium) + id: playwright + run: | + pnpm exec playwright test --project=chromium --reporter=blob --shard=${{ matrix.shard }}/8 + env: + PLAYWRIGHT_BLOB_OUTPUT_DIR: ./blob-report + shell: bash + + - name: Upload Blob Report + uses: actions/upload-artifact@v4 + if: always() + with: + # Use a unique name for each shard's blob report + name: blob-report-windows-${{ matrix.shard }} + path: ./blob-report + retention-days: 1 + # Merge sharded test reports merge-reports: - needs: [playwright-tests-chromium-sharded] + needs: [playwright-tests-chromium-sharded, playwright-tests-windows] runs-on: ubuntu-latest if: ${{ !cancelled() }} steps: @@ -166,7 +208,7 @@ jobs: uses: actions/download-artifact@v4 with: path: ./all-blob-reports - pattern: blob-report-chromium-* + pattern: blob-report-* merge-multiple: true - name: Merge into HTML Report @@ -215,7 +257,7 @@ jobs: # Deploy and comment for non-forked PRs only deploy-and-comment: - needs: [playwright-tests, merge-reports] + needs: [playwright-tests, merge-reports, playwright-tests-windows] runs-on: ubuntu-latest if: always() && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false permissions: