Skip to content

fix(dojo): re-enable agentic generative UI test for pydantic ai #344

fix(dojo): re-enable agentic generative UI test for pydantic ai

fix(dojo): re-enable agentic generative UI test for pydantic ai #344

Workflow file for this run

name: e2e
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
e2e:
name: ${{ matrix.suite }}
runs-on: depot-ubuntu-24.04
strategy:
fail-fast: false
matrix:
include:
- suite: agno
test_path: tests/agnoTests
services: ["dojo","agno"]
wait_on: ["http://127.0.0.1:9999","tcp:127.0.0.1:8002"]
- suite: crew-ai
test_path: tests/crewAITests
services: ["dojo","crew-ai"]
wait_on: ["http://127.0.0.1:9999","tcp:127.0.0.1:8003"]
- suite: langgraph
test_path: tests/langgraphTests
services: ["dojo","langgraph-platform-python","langgraph-platform-typescript"]
wait_on: ["http://127.0.0.1:9999","tcp:127.0.0.1:8005","tcp:127.0.0.1:8006"]
- suite: langgraph-fastapi
test_path: tests/langgraphFastAPITests
services: ["dojo","langgraph-fastapi"]
wait_on: ["http://127.0.0.1:9999","tcp:127.0.0.1:8004"]
- suite: llama-index
test_path: tests/llamaIndexTests
services: ["dojo","llama-index"]
wait_on: ["http://127.0.0.1:9999","tcp:127.0.0.1:8007"]
- suite: mastra
test_path: tests/mastraTests
services: ["dojo","mastra"]
wait_on: ["http://127.0.0.1:9999","tcp:127.0.0.1:8008"]
- suite: mastra-agent-local
test_path: tests/mastraAgentLocalTests
services: ["dojo"]
wait_on: ["http://127.0.0.1:9999"]
- suite: middleware-starter
test_path: tests/middlewareStarterTests
services: ["dojo"]
wait_on: ["http://127.0.0.1:9999"]
- suite: pydantic-ai
test_path: tests/pydanticAITests
services: ["dojo","pydantic-ai"]
wait_on: ["http://127.0.0.1:9999","tcp:127.0.0.1:8009"]
- suite: server-starter
test_path: tests/serverStarterTests
services: ["dojo","server-starter"]
wait_on: ["http://127.0.0.1:9999","tcp:127.0.0.1:8000"]
- suite: server-starter-all
test_path: tests/serverStarterAllFeaturesTests
services: ["dojo","server-starter-all"]
wait_on: ["http://127.0.0.1:9999","tcp:127.0.0.1:8001"]
- suite: vercel-ai-sdk
test_path: tests/vercelAISdkTests
services: ["dojo"]
wait_on: ["http://127.0.0.1:9999"]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'pnpm'
cache-dependency-path: |
typescript-sdk/pnpm-lock.yaml
typescript-sdk/apps/dojo/e2e/pnpm-lock.yaml
typescript-sdk/integrations/langgraph/examples/typescript/pnpm-lock.yaml
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10.13.1
- name: Install Poetry
uses: snok/install-poetry@v1
with:
version: latest
virtualenvs-create: true
virtualenvs-in-project: true
- name: Install uv
uses: astral-sh/setup-uv@v6
# Cache Python tool caches and virtualenvs for Poetry/uv-based projects
- name: Cache Python dependencies
uses: actions/cache@v4
with:
path: |
~/.cache/pip
~/.cache/pypoetry
~/.cache/uv
**/.venv
key: ${{ runner.os }}-pydeps-${{ hashFiles('**/poetry.lock', '**/pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pydeps-
- name: Install dependencies
working-directory: typescript-sdk
run: pnpm install --frozen-lockfile
- name: Prepare dojo for e2e
working-directory: typescript-sdk/apps/dojo
if: ${{ join(matrix.services, ',') != '' }}
run: node ./scripts/prep-dojo-everything.js --only ${{ join(matrix.services, ',') }}
- name: Install e2e dependencies
working-directory: typescript-sdk/apps/dojo/e2e
run: |
pnpm install
- name: write langgraph env files
working-directory: typescript-sdk/integrations/langgraph
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
if: ${{ contains(join(matrix.services, ','), 'langgraph-fastapi') || contains(join(matrix.services, ','), 'langgraph-platform-python') || contains(join(matrix.services, ','), 'langgraph-platform-typescript') }}
run: |
echo "OPENAI_API_KEY=${OPENAI_API_KEY}" > examples/python/.env
echo "LANGSMITH_API_KEY=${LANGSMITH_API_KEY}" >> examples/python/.env
echo "OPENAI_API_KEY=${OPENAI_API_KEY}" > examples/typescript/.env
echo "LANGSMITH_API_KEY=${LANGSMITH_API_KEY}" >> examples/typescript/.env
echo "OPENAI_API_KEY=${OPENAI_API_KEY}" > python/ag_ui_langgraph/.env
echo "LANGSMITH_API_KEY=${LANGSMITH_API_KEY}" >> python/ag_ui_langgraph/.env
- name: Run dojo+agents
uses: JarvusInnovations/background-action@v1
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
if: ${{ join(matrix.services, ',') != '' && contains(join(matrix.services, ','), 'dojo') }}
with:
run: |
node ../scripts/run-dojo-everything.js --only ${{ join(matrix.services, ',') }}
working-directory: typescript-sdk/apps/dojo/e2e
wait-on: ${{ join(matrix.wait_on, '\n') }}
- name: Run tests – ${{ matrix.suite }}
working-directory: typescript-sdk/apps/dojo/e2e
env:
BASE_URL: http://127.0.0.1:9999
run: |
pnpm test -- ${{ matrix.test_path }}
- name: Upload traces – ${{ matrix.suite }}
if: always() # Uploads artifacts even if tests fail
uses: actions/upload-artifact@v4
with:
name: playwright-traces-${{ matrix.suite }}
path: typescript-sdk/apps/dojo/e2e/test-results/
retention-days: 7