feat(runtime): receive chunked worker blobs (#5688) #2659
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: E2E Workflow Runner | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - "web/e2e-runner.html" | |
| - "web/src/e2e_runner/**" | |
| - "web/tests/e2e-runner/**" | |
| - "web/playwright.e2e-runner.config.ts" | |
| # The suite exercises the whole backend execution stack, so trigger on any | |
| # package change (kernel, runtime, node-sdk, base-nodes, agents, chat, | |
| # websocket, …) — not just the harness's own server files. | |
| - "packages/**" | |
| - "examples/workflows/**" | |
| - ".github/workflows/e2e-runner.yml" | |
| pull_request: | |
| branches: | |
| - main | |
| paths: | |
| - "web/e2e-runner.html" | |
| - "web/src/e2e_runner/**" | |
| - "web/tests/e2e-runner/**" | |
| - "web/playwright.e2e-runner.config.ts" | |
| # The suite exercises the whole backend execution stack, so trigger on any | |
| # package change (kernel, runtime, node-sdk, base-nodes, agents, chat, | |
| # websocket, …) — not just the harness's own server files. | |
| - "packages/**" | |
| - "examples/workflows/**" | |
| - ".github/workflows/e2e-runner.yml" | |
| permissions: | |
| contents: read | |
| # Cancel superseded runs for the same branch/PR; the latest push is what matters. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| e2e-workflow-runner: | |
| name: Run workflow suite in browser | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v7 | |
| - name: Set up Node, install deps, build packages | |
| # mesa-vulkan-drivers ships lavapipe (CPU Vulkan ICD) so headless | |
| # Chromium can acquire a WebGPU adapter on GPU-less CI runners. | |
| uses: ./.github/actions/setup-build | |
| with: | |
| extra-apt: mesa-vulkan-drivers | |
| - name: Cache Playwright browsers | |
| uses: actions/cache@v6 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: ${{ runner.os }}-playwright-${{ hashFiles('**/package-lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-playwright- | |
| - name: Install Playwright Chromium browser | |
| run: npx playwright install --with-deps chromium | |
| working-directory: web | |
| - name: Run E2E workflow suite | |
| run: npm run test:e2e-runner | |
| working-directory: web | |
| env: | |
| CI: "true" | |
| # Optional provider keys — when present, agent/LLM workflows run for | |
| # real; otherwise they fall back to a deterministic ScriptedProvider. | |
| OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
| ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} | |
| GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }} | |
| - name: Upload E2E workflow report | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: e2e-workflow-report | |
| path: web/test-results/e2e-runner | |
| retention-days: 14 |