81 lines
2.3 KiB
YAML
81 lines
2.3 KiB
YAML
services:
|
|
aimock:
|
|
image: ghcr.io/copilotkit/aimock:latest
|
|
volumes:
|
|
- ./fixtures:/fixtures:ro
|
|
command:
|
|
["--fixtures", "/fixtures", "--host", "0.0.0.0", "--validate-on-load"]
|
|
|
|
agent:
|
|
build:
|
|
context: ./agent
|
|
dockerfile: ../docker/Dockerfile.agent
|
|
environment:
|
|
# google-genai SDK does not honor a custom endpoint the way the
|
|
# OpenAI / Anthropic clients do, so aimock can't intercept calls
|
|
# from the adk agent — the SDK hits generativelanguage.googleapis.com
|
|
# directly. Pass a real key via CI secret (see .github/workflows/
|
|
# test_smoke-starter.yml). Fall back to the placeholder for local
|
|
# dev runs where the local harness may provide its own stub.
|
|
- GOOGLE_API_KEY=${GOOGLE_API_KEY:-test-key-for-aimock}
|
|
- GOOGLE_GENAI_USE_VERTEXAI=false
|
|
depends_on:
|
|
aimock:
|
|
condition: service_started
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD",
|
|
"python",
|
|
"-c",
|
|
"import socket; socket.create_connection(('localhost', 8000), 2)",
|
|
]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 30
|
|
start_period: 30s
|
|
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: docker/Dockerfile.app
|
|
environment:
|
|
- AGENT_URL=http://agent:8000
|
|
depends_on:
|
|
agent:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD",
|
|
"node",
|
|
"-e",
|
|
"const http = require('http'); const req = http.get('http://localhost:3000/', (res) => { process.exit(res.statusCode === 200 ? 0 : 1); }); req.on('error', () => process.exit(1)); req.setTimeout(2000, () => { req.destroy(); process.exit(1); });",
|
|
]
|
|
interval: 5s
|
|
timeout: 10s
|
|
retries: 30
|
|
start_period: 60s
|
|
|
|
tests:
|
|
image: mcr.microsoft.com/playwright:v1.52.0-noble
|
|
working_dir: /tests
|
|
volumes:
|
|
- ../../../showcase/tests:/tests
|
|
- test-results:/tests/test-results
|
|
environment:
|
|
- STARTER=${STARTER:-adk}
|
|
- STARTER_URL=http://app:3000
|
|
depends_on:
|
|
app:
|
|
condition: service_healthy
|
|
command:
|
|
[
|
|
"bash",
|
|
"-c",
|
|
"cd /tests && npm install --no-audit --no-fund 2>/dev/null && npx playwright install chromium && npx playwright test starter-smoke --reporter=list",
|
|
]
|
|
|
|
volumes:
|
|
test-results:
|