name: CI on: push: branches: [main, v2] pull_request: branches: [main] jobs: unit-tests: name: Unit Tests & Build runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v4 - name: Install pnpm uses: pnpm/action-setup@v4 - name: Use Node.js 20 uses: actions/setup-node@v4 with: node-version: 20 cache: "pnpm" - name: Install dependencies run: pnpm install - name: Typecheck run: pnpm typecheck - name: Run unit tests run: pnpm test - name: Build run: pnpm build e2e-tests: name: E2E Tests runs-on: ubuntu-latest needs: unit-tests steps: - name: Check out code uses: actions/checkout@v4 - name: Install pnpm uses: pnpm/action-setup@v4 - name: Use Node.js 20 uses: actions/setup-node@v4 with: node-version: 20 cache: "pnpm" - name: Install dependencies run: pnpm install - 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 - name: Setup test ComfyUI run: pnpm setup:e2e timeout-minutes: 15 - name: Run E2E tests run: pnpm test:e2e timeout-minutes: 30 - name: Upload test results if: failure() uses: actions/upload-artifact@v4 with: name: e2e-test-results path: | test-results/ playwright-report/ retention-days: 7