chore: use uv for running tests #967
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: tests | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| types: | |
| - opened | |
| - synchronize | |
| - reopened | |
| - ready_for_review | |
| workflow_dispatch: | |
| env: | |
| UV_VERSION: "0.9.11" | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| - name: Install dependencies | |
| run: | | |
| uv sync --group lint | |
| - name: Lint Python code with ruff | |
| run: | | |
| uv run ruff check . | |
| uv run ruff format --check . | |
| core_test: | |
| runs-on: ubuntu-latest | |
| name: core_test python-${{ matrix.python-version }} | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12"] | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| python-version: ${{ matrix.python-version }} | |
| - name: Run tests | |
| run: | | |
| uv run --exact --group integration --extra memory pytest tests/ | |
| langchain_test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10"] | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| python-version: ${{ matrix.python-version }} | |
| - name: Run tests | |
| working-directory: integrations/langchain | |
| run: | | |
| uv run --exact --group integration pytest tests/unit_tests | |
| lakebase_memory_test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10"] | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| python-version: ${{ matrix.python-version }} | |
| - name: Run databricks-ai-bridge Tests | |
| run: | | |
| uv run --exact --group integration --extra memory pytest tests/databricks_ai_bridge/test_lakebase.py | |
| - name: Run databricks-langchain Tests | |
| working-directory: integrations/langchain | |
| run: | | |
| uv run --exact --group integration --extra memory pytest tests/unit_tests/test_checkpoint.py tests/unit_tests/test_store.py | |
| langchain_cross_version_test: | |
| runs-on: ubuntu-latest | |
| name: langchain_test (${{ matrix.python-version }}, ${{ matrix.version.name }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10"] | |
| version: | |
| - { ref: "databricks-ai-v0.5.0", name: "v0.5.0" } | |
| - { ref: "databricks-ai-v0.4.0", name: "v0.4.0" } | |
| - { ref: "databricks-ai-v0.3.0", name: "v0.3.0" } | |
| - { ref: "databricks-ai-v0.2.0", name: "v0.2.0" } | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| pip install . | |
| - name: Checkout langchain version | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ matrix.version.ref }} | |
| fetch-depth: 1 | |
| path: older-version | |
| - name: Replace langchain with older version | |
| run: | | |
| # Remove current langchain if it exists to avoid conflicts | |
| rm -rf integrations/langchain | |
| # Copy older version of langchain to the main repo | |
| cp -r older-version/integrations/langchain integrations/ | |
| - name: Install langchain dependency | |
| run: | | |
| pip install integrations/langchain --group dev | |
| - name: Run tests | |
| run: | | |
| # Only testing initialization since functionality can change | |
| pytest integrations/langchain/tests/unit_tests/test_vector_search_retriever_tool.py::test_init | |
| pytest integrations/langchain/tests/unit_tests/test_genie.py | |
| pytest integrations/langchain/tests/unit_tests/test_embeddings.py | |
| pytest integrations/langchain/tests/unit_tests/test_chat_models.py | |
| openai_test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10"] | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| python-version: ${{ matrix.python-version }} | |
| - name: Run tests | |
| working-directory: integrations/openai | |
| run: | | |
| uv run --exact --group integration pytest tests/unit_tests | |
| openai_cross_version_test: | |
| runs-on: ubuntu-latest | |
| name: openai_test (${{ matrix.python-version }}, ${{ matrix.version.name }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10"] | |
| version: | |
| - { ref: "databricks-ai-v0.5.0", name: "v0.5.0", mlflow: "mlflow<3" } | |
| - { ref: "databricks-ai-v0.4.0", name: "v0.4.0", mlflow: "mlflow<3" } | |
| - { ref: "databricks-ai-v0.3.0", name: "v0.3.0", mlflow: "mlflow<3" } | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| pip install . "${{ matrix.version.mlflow }}" | |
| - name: Checkout openai version | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ matrix.version.ref }} | |
| fetch-depth: 1 | |
| path: older-version | |
| - name: Replace openai with older version | |
| run: | | |
| # Remove current openai if it exists to avoid conflicts | |
| rm -rf integrations/openai | |
| # Copy older version of openai to the main repo | |
| cp -r older-version/integrations/openai integrations/ | |
| - name: Install openai dependency | |
| run: | | |
| pip install . | |
| pip install integrations/openai --group dev | |
| - name: Run tests | |
| run: | | |
| # Only testing initialization since functionality can change | |
| pytest integrations/openai/tests/unit_tests/test_vector_search_retriever_tool.py::test_vector_search_retriever_tool_init | |
| llamaindex_test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10"] | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| python-version: ${{ matrix.python-version }} | |
| - name: Run tests | |
| working-directory: integrations/llamaindex | |
| run: | | |
| uv run --exact --group integration pytest tests/unit_tests | |
| mcp_test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10"] | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| python-version: ${{ matrix.python-version }} | |
| - name: Run tests | |
| working-directory: databricks_mcp | |
| run: | | |
| uv run --exact --group integration pytest tests/unit_tests | |
| dspy_test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10"] | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| python-version: ${{ matrix.python-version }} | |
| - name: Run tests | |
| working-directory: integrations/dspy | |
| run: | | |
| uv run --exact --group integration pytest tests/unit_tests |