name: Integration Tests env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} COMPOSIO_API_KEY: ${{ secrets.COMPOSIO_API_KEY }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }} GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} AZURE_BASE_URL: ${{ secrets.AZURE_BASE_URL }} E2B_API_KEY: ${{ secrets.E2B_API_KEY }} E2B_SANDBOX_TEMPLATE_ID: ${{ secrets.E2B_SANDBOX_TEMPLATE_ID }} on: push: branches: [ main ] pull_request: branches: [ main ] jobs: integ-run: runs-on: ubuntu-latest timeout-minutes: 15 strategy: fail-fast: false matrix: integration_test_suite: - "integration_test_summarizer.py" - "integration_test_tool_execution_sandbox.py" - "integration_test_offline_memory_agent.py" - "integration_test_agent_tool_graph.py" - "integration_test_o1_agent.py" services: qdrant: image: qdrant/qdrant ports: - 6333:6333 postgres: image: pgvector/pgvector:pg17 ports: - 5432:5432 env: POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_DB: postgres POSTGRES_USER: postgres options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Python, Poetry, and Dependencies uses: packetcoders/action-setup-cache-python-poetry@main with: python-version: "3.12" poetry-version: "1.8.2" install-args: "-E dev -E postgres -E external-tools -E tests -E cloud-tool-sandbox" - name: Migrate database env: LETTA_PG_PORT: 5432 LETTA_PG_USER: postgres LETTA_PG_PASSWORD: postgres LETTA_PG_DB: postgres LETTA_PG_HOST: localhost run: | psql -h localhost -U postgres -d postgres -c 'CREATE EXTENSION vector' poetry run alembic upgrade head - name: Run core unit tests env: LETTA_PG_PORT: 5432 LETTA_PG_USER: postgres LETTA_PG_PASSWORD: postgres LETTA_PG_DB: postgres LETTA_PG_HOST: localhost LETTA_SERVER_PASS: test_server_token run: | poetry run pytest -s -vv tests/${{ matrix.integration_test_suite }}