Skip to content

Commit be47f9b

Browse files
Merge branch 'main' into mark/recreate-pr
2 parents e52c533 + a71fbb7 commit be47f9b

File tree

15 files changed

+546
-372
lines changed

15 files changed

+546
-372
lines changed

.github/workflows/check-generated-files.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
1-
name: Check Generated Files
1+
name: static
22

33
on:
44
push:
55
branches: [main]
6+
paths:
7+
- "apps/dojo/**"
8+
- "integrations/**"
9+
- ".github/workflows/check-generated-files.yml"
610
pull_request:
711
branches: [main]
12+
paths:
13+
- "apps/dojo/**"
14+
- "integrations/**"
15+
- ".github/workflows/check-generated-files.yml"
816

917
jobs:
10-
check-files-json:
11-
name: Check files.json
18+
check-dojo-generated-files:
1219
runs-on: ubuntu-latest
1320
steps:
1421
- name: Checkout code
@@ -17,7 +24,7 @@ jobs:
1724
- name: Set up Node.js
1825
uses: actions/setup-node@v4
1926
with:
20-
node-version: '22'
27+
node-version: "22"
2128

2229
- name: Install pnpm
2330
uses: pnpm/action-setup@v4

.github/workflows/dojo-e2e.yml

Lines changed: 136 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -3,52 +3,70 @@ name: e2e
33
on:
44
push:
55
branches: [main]
6+
paths:
7+
- "integrations/**"
8+
- "apps/dojo/**"
9+
- "middlewares/**"
10+
- "pnpm-lock.yaml"
11+
- "pnpm-workspace.yaml"
12+
- ".github/workflows/dojo-e2e.yml"
13+
- "sdks/python/**"
14+
- "sdks/typescript/**"
615
pull_request:
716
branches: [main]
17+
paths:
18+
- "apps/dojo/**"
19+
- "integrations/**"
20+
- "middlewares/**"
21+
- "pnpm-lock.yaml"
22+
- "pnpm-workspace.yaml"
23+
- ".github/workflows/dojo-e2e.yml"
24+
- "sdks/python/**"
25+
- "sdks/typescript/**"
826

927
jobs:
10-
e2e:
11-
name: ${{ matrix.suite }}
28+
dojo:
29+
name: dojo / ${{ matrix.suite }}
1230
runs-on: depot-ubuntu-24.04
1331
strategy:
1432
fail-fast: false
1533
matrix:
1634
include:
1735
- suite: a2a-middleware
1836
test_path: tests/a2aMiddlewareTests
19-
services: ["dojo","a2a-middleware"]
37+
services: ["dojo", "a2a-middleware"]
2038
wait_on: http://localhost:9999,tcp:localhost:8011,tcp:localhost:8012,tcp:localhost:8013,tcp:localhost:8014
2139
- suite: adk-middleware
2240
test_path: tests/adkMiddlewareTests
23-
services: ["dojo","adk-middleware"]
41+
services: ["dojo", "adk-middleware"]
2442
wait_on: http://localhost:9999,tcp:localhost:8010
2543
- suite: agno
2644
test_path: tests/agnoTests
27-
services: ["dojo","agno"]
45+
services: ["dojo", "agno"]
2846
wait_on: http://localhost:9999,tcp:localhost:8002
2947
- suite: crew-ai
3048
test_path: tests/crewAITests
31-
services: ["dojo","crew-ai"]
49+
services: ["dojo", "crew-ai"]
3250
wait_on: http://localhost:9999,tcp:localhost:8003
3351
- suite: langgraph-python
3452
test_path: tests/langgraphPythonTests
35-
services: ["dojo","langgraph-platform-python"]
53+
services: ["dojo", "langgraph-platform-python"]
3654
wait_on: http://localhost:9999,tcp:localhost:8005
3755
- suite: langgraph-typescript
3856
test_path: tests/langgraphTypescriptTests
39-
services: ["dojo","langgraph-platform-typescript"]
57+
services: ["dojo", "langgraph-platform-typescript"]
4058
wait_on: http://localhost:9999,tcp:localhost:8006
4159
- suite: langgraph-fastapi
4260
test_path: tests/langgraphFastAPITests
43-
services: ["dojo","langgraph-fastapi"]
61+
services: ["dojo", "langgraph-fastapi"]
4462
wait_on: http://localhost:9999,tcp:localhost:8004
4563
- suite: llama-index
4664
test_path: tests/llamaIndexTests
47-
services: ["dojo","llama-index"]
65+
services: ["dojo", "llama-index"]
4866
wait_on: http://localhost:9999,tcp:localhost:8007
4967
- suite: mastra
5068
test_path: tests/mastraTests
51-
services: ["dojo","mastra"]
69+
services: ["dojo", "mastra"]
5270
wait_on: http://localhost:9999,tcp:localhost:8008
5371
- suite: mastra-agent-local
5472
test_path: tests/mastraAgentLocalTests
@@ -60,125 +78,125 @@ jobs:
6078
wait_on: http://localhost:9999
6179
- suite: pydantic-ai
6280
test_path: tests/pydanticAITests
63-
services: ["dojo","pydantic-ai"]
81+
services: ["dojo", "pydantic-ai"]
6482
wait_on: http://localhost:9999,tcp:localhost:8009
6583
- suite: server-starter
6684
test_path: tests/serverStarterTests
67-
services: ["dojo","server-starter"]
85+
services: ["dojo", "server-starter"]
6886
wait_on: http://localhost:9999,tcp:localhost:8000
6987
- suite: server-starter-all
7088
test_path: tests/serverStarterAllFeaturesTests
71-
services: ["dojo","server-starter-all"]
89+
services: ["dojo", "server-starter-all"]
7290
wait_on: http://localhost:9999,tcp:localhost:8001
7391
# - suite: vercel-ai-sdk
7492
# test_path: tests/vercelAISdkTests
7593
# services: ["dojo"]
7694
# wait_on: http://localhost:9999
7795

7896
steps:
79-
- name: Checkout code
80-
uses: actions/checkout@v4
81-
82-
- name: Set up Node.js
83-
uses: actions/setup-node@v4
84-
with:
85-
node-version: '22'
86-
87-
- name: Install pnpm
88-
uses: pnpm/action-setup@v4
89-
with:
90-
version: 10.13.1
91-
92-
# Now that pnpm is available, cache its store to speed installs
93-
- name: Resolve pnpm store path
94-
id: pnpm-store
95-
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
96-
97-
- name: Cache pnpm store
98-
uses: actions/cache@v4
99-
with:
100-
path: ${{ env.STORE_PATH }}
101-
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
102-
restore-keys: |
103-
${{ runner.os }}-pnpm-store-
104-
105-
# Cache Python tool caches and virtualenvs; restore only to avoid long saves
106-
- name: Cache Python dependencies (restore-only)
107-
id: cache-python
108-
uses: actions/cache/restore@v4
109-
with:
110-
path: |
111-
~/.cache/pip
112-
~/.cache/pypoetry
113-
~/.cache/uv
114-
**/.venv
115-
key: ${{ runner.os }}-pydeps-${{ hashFiles('**/poetry.lock', '**/pyproject.toml') }}
116-
restore-keys: |
117-
${{ runner.os }}-pydeps-
118-
119-
- name: Install Poetry
120-
uses: snok/install-poetry@v1
121-
with:
122-
version: latest
123-
virtualenvs-create: true
124-
virtualenvs-in-project: true
125-
126-
- name: Install uv
127-
uses: astral-sh/setup-uv@v6
128-
129-
- name: Install dependencies
130-
run: pnpm install --frozen-lockfile
131-
132-
- name: Prepare dojo for e2e
133-
working-directory: apps/dojo
134-
if: ${{ join(matrix.services, ',') != '' }}
135-
run: node ./scripts/prep-dojo-everything.js --only ${{ join(matrix.services, ',') }}
136-
137-
- name: Install e2e dependencies
138-
working-directory: apps/dojo/e2e
139-
run: |
140-
pnpm install
141-
142-
- name: write langgraph env files
143-
working-directory: integrations/langgraph
144-
env:
145-
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
146-
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
147-
if: ${{ contains(join(matrix.services, ','), 'langgraph-fastapi') || contains(join(matrix.services, ','), 'langgraph-platform-python') || contains(join(matrix.services, ','), 'langgraph-platform-typescript') }}
148-
run: |
149-
echo "OPENAI_API_KEY=${OPENAI_API_KEY}" > python/examples/.env
150-
echo "LANGSMITH_API_KEY=${LANGSMITH_API_KEY}" >> python/examples/.env
151-
echo "OPENAI_API_KEY=${OPENAI_API_KEY}" > typescript/examples/.env
152-
echo "LANGSMITH_API_KEY=${LANGSMITH_API_KEY}" >> typescript/examples/.env
153-
154-
- name: Run dojo+agents
155-
uses: JarvusInnovations/background-action@v1
156-
env:
157-
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
158-
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
159-
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
160-
if: ${{ join(matrix.services, ',') != '' && contains(join(matrix.services, ','), 'dojo') }}
161-
with:
97+
- name: Checkout code
98+
uses: actions/checkout@v4
99+
100+
- name: Set up Node.js
101+
uses: actions/setup-node@v4
102+
with:
103+
node-version: "22"
104+
105+
- name: Install pnpm
106+
uses: pnpm/action-setup@v4
107+
with:
108+
version: 10.13.1
109+
110+
# Now that pnpm is available, cache its store to speed installs
111+
- name: Resolve pnpm store path
112+
id: pnpm-store
113+
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
114+
115+
- name: Cache pnpm store
116+
uses: actions/cache@v4
117+
with:
118+
path: ${{ env.STORE_PATH }}
119+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
120+
restore-keys: |
121+
${{ runner.os }}-pnpm-store-
122+
123+
# Cache Python tool caches and virtualenvs; restore only to avoid long saves
124+
- name: Cache Python dependencies (restore-only)
125+
id: cache-python
126+
uses: actions/cache/restore@v4
127+
with:
128+
path: |
129+
~/.cache/pip
130+
~/.cache/pypoetry
131+
~/.cache/uv
132+
**/.venv
133+
key: ${{ runner.os }}-pydeps-${{ hashFiles('**/poetry.lock', '**/pyproject.toml') }}
134+
restore-keys: |
135+
${{ runner.os }}-pydeps-
136+
137+
- name: Install Poetry
138+
uses: snok/install-poetry@v1
139+
with:
140+
version: latest
141+
virtualenvs-create: true
142+
virtualenvs-in-project: true
143+
144+
- name: Install uv
145+
uses: astral-sh/setup-uv@v6
146+
147+
- name: Install dependencies
148+
run: pnpm install --frozen-lockfile
149+
150+
- name: Prepare dojo for e2e
151+
working-directory: apps/dojo
152+
if: ${{ join(matrix.services, ',') != '' }}
153+
run: node ./scripts/prep-dojo-everything.js --only ${{ join(matrix.services, ',') }}
154+
155+
- name: Install e2e dependencies
156+
working-directory: apps/dojo/e2e
157+
run: |
158+
pnpm install
159+
160+
- name: write langgraph env files
161+
working-directory: integrations/langgraph
162+
env:
163+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
164+
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
165+
if: ${{ contains(join(matrix.services, ','), 'langgraph-fastapi') || contains(join(matrix.services, ','), 'langgraph-platform-python') || contains(join(matrix.services, ','), 'langgraph-platform-typescript') }}
162166
run: |
163-
node ../scripts/run-dojo-everything.js --only ${{ join(matrix.services, ',') }}
167+
echo "OPENAI_API_KEY=${OPENAI_API_KEY}" > python/examples/.env
168+
echo "LANGSMITH_API_KEY=${LANGSMITH_API_KEY}" >> python/examples/.env
169+
echo "OPENAI_API_KEY=${OPENAI_API_KEY}" > typescript/examples/.env
170+
echo "LANGSMITH_API_KEY=${LANGSMITH_API_KEY}" >> typescript/examples/.env
171+
172+
- name: Run dojo+agents
173+
uses: JarvusInnovations/background-action@v1
174+
env:
175+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
176+
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
177+
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
178+
if: ${{ join(matrix.services, ',') != '' && contains(join(matrix.services, ','), 'dojo') }}
179+
with:
180+
run: |
181+
node ../scripts/run-dojo-everything.js --only ${{ join(matrix.services, ',') }}
182+
working-directory: apps/dojo/e2e
183+
wait-on: ${{ matrix.wait_on }}
184+
wait-for: 300000
185+
186+
- name: Run tests – ${{ matrix.suite }}
164187
working-directory: apps/dojo/e2e
165-
wait-on: ${{ matrix.wait_on }}
166-
wait-for: 300000
167-
168-
- name: Run tests – ${{ matrix.suite }}
169-
working-directory: apps/dojo/e2e
170-
env:
171-
BASE_URL: http://localhost:9999
172-
PLAYWRIGHT_SUITE: ${{ matrix.suite }}
173-
run: |
174-
pnpm test -- ${{ matrix.test_path }}
175-
176-
- name: Upload traces – ${{ matrix.suite }}
177-
if: always() # Uploads artifacts even if tests fail
178-
uses: actions/upload-artifact@v4
179-
with:
180-
name: ${{ matrix.suite }}-playwright-traces
181-
path: |
182-
apps/dojo/e2e/test-results/${{ matrix.suite }}/**/*
183-
apps/dojo/e2e/playwright-report/**/*
184-
retention-days: 7
188+
env:
189+
BASE_URL: http://localhost:9999
190+
PLAYWRIGHT_SUITE: ${{ matrix.suite }}
191+
run: |
192+
pnpm test -- ${{ matrix.test_path }}
193+
194+
- name: Upload traces – ${{ matrix.suite }}
195+
if: always() # Uploads artifacts even if tests fail
196+
uses: actions/upload-artifact@v4
197+
with:
198+
name: ${{ matrix.suite }}-playwright-traces
199+
path: |
200+
apps/dojo/e2e/test-results/${{ matrix.suite }}/**/*
201+
apps/dojo/e2e/playwright-report/**/*
202+
retention-days: 7

0 commit comments

Comments
 (0)