name: Run Docker integration tests on: push: branches: [ main ] pull_request: branches: [ main ] jobs: test: runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: Checkout uses: actions/checkout@v4 - name: Set up python 3.11 id: setup-python uses: actions/setup-python@v5 with: python-version: 3.11 - name: Install uv uses: astral-sh/setup-uv@v6 with: enable-cache: true - name: Set permissions for log directory run: | mkdir -p /home/runner/.letta/logs sudo chown -R $USER:$USER /home/runner/.letta/logs chmod -R 755 /home/runner/.letta/logs - name: Build and run docker dev server env: LETTA_PG_DB: letta LETTA_PG_USER: letta LETTA_PG_PASSWORD: letta LETTA_PG_PORT: 8888 OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} run: | docker compose -f dev-compose.yaml up --build -d - name: Wait for service run: bash scripts/wait_for_service.sh http://localhost:8283 -- echo "Service is ready" - name: Run tests with pytest env: LETTA_PG_DB: letta LETTA_PG_USER: letta LETTA_PG_PASSWORD: letta LETTA_PG_PORT: 8888 LETTA_SERVER_PASS: test_server_token LETTA_SERVER_URL: http://localhost:8283 OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} PYTHONPATH: ${{ github.workspace }}:${{ env.PYTHONPATH }} run: | uv sync --extra dev --extra postgres uv run pytest -s tests/test_client.py - name: Print docker logs if tests fail if: failure() run: | echo "Printing Docker Logs..." docker compose -f dev-compose.yaml logs