Skip to content

feat(runtime): receive chunked worker blobs (#5688) #2659

feat(runtime): receive chunked worker blobs (#5688)

feat(runtime): receive chunked worker blobs (#5688) #2659

Workflow file for this run

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