name: 'CI: Performance Report' on: push: branches: [main, core/*] paths-ignore: ['**/*.md'] pull_request: branches-ignore: [wip/*, draft/*, temp/*] paths-ignore: ['**/*.md'] concurrency: group: perf-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: perf-tests: if: github.repository == 'Comfy-Org/ComfyUI_frontend' runs-on: ubuntu-latest timeout-minutes: 30 container: image: ghcr.io/comfy-org/comfyui-ci-container:0.0.12 credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} permissions: contents: read packages: read steps: - name: Checkout repository uses: actions/checkout@v6 - name: Setup frontend uses: ./.github/actions/setup-frontend with: include_build_step: true - name: Start ComfyUI server uses: ./.github/actions/start-comfyui-server - name: Run performance tests id: perf continue-on-error: true run: pnpm exec playwright test --project=performance --workers=1 --repeat-each=3 - name: Upload perf metrics if: always() uses: actions/upload-artifact@v6 with: name: perf-metrics path: test-results/perf-metrics.json retention-days: 30 if-no-files-found: warn - name: Save PR metadata if: github.event_name == 'pull_request' run: | mkdir -p temp/perf-meta echo "${{ github.event.number }}" > temp/perf-meta/number.txt echo "${{ github.event.pull_request.base.ref }}" > temp/perf-meta/base.txt - name: Upload PR metadata if: github.event_name == 'pull_request' uses: actions/upload-artifact@v6 with: name: perf-meta path: temp/perf-meta/