Skip to content

chore: start testing both lowest-direct and highest package resolution strategy #968

chore: start testing both lowest-direct and highest package resolution strategy

chore: start testing both lowest-direct and highest package resolution strategy #968

Workflow file for this run

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 }}, uv: ${{ matrix.uv-resolution }})"
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
uv-resolution: ["lowest-direct", "highest"]
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 --resolution ${{ matrix.uv-resolution }} \
--exact --group tests --extra memory \
pytest tests/
langchain_test:
runs-on: ubuntu-latest
name: "langchain_test (python: ${{ matrix.python-version }}, uv: ${{ matrix.uv-resolution }})"
strategy:
matrix:
python-version: ["3.10"]
uv-resolution: ["lowest-direct", "highest"]
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 --resolution ${{ matrix.uv-resolution }} \
--exact --group tests pytest tests/unit_tests
lakebase_memory_test:
runs-on: ubuntu-latest
name: "lakebase_memory_test (python: ${{ matrix.python-version }}, uv: ${{ matrix.uv-resolution }})"
strategy:
matrix:
python-version: ["3.10"]
uv-resolution: ["lowest-direct", "highest"]
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 --resolution ${{ matrix.uv-resolution }} \
--exact --group tests --extra memory \
pytest tests/databricks_ai_bridge/test_lakebase.py
- name: Run databricks-langchain Tests
working-directory: integrations/langchain
run: |
uv run --resolution ${{ matrix.uv-resolution }} \
--exact --group tests --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
name: "openai_test (python: ${{ matrix.python-version }}, uv: ${{ matrix.uv-resolution }})"
strategy:
matrix:
python-version: ["3.10"]
uv-resolution: ["lowest-direct", "highest"]
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 --resolution ${{ matrix.uv-resolution }} \
--exact --group tests 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: 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
pip install "${{ matrix.version.mlflow }}"
- 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
name: "llamaindex_test (python: ${{ matrix.python-version }}, uv: ${{ matrix.uv-resolution }})"
strategy:
matrix:
python-version: ["3.10"]
uv-resolution: ["lowest-direct", "highest"]
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 --resolution ${{ matrix.uv-resolution }} --exact --group tests pytest tests/unit_tests
mcp_test:
runs-on: ubuntu-latest
name: "mcp_test (python: ${{ matrix.python-version }}, uv: ${{ matrix.uv-resolution }})"
strategy:
matrix:
python-version: ["3.10"]
uv-resolution: ["lowest-direct", "highest"]
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 --resolution ${{ matrix.uv-resolution }} \
--exact --group tests pytest tests/unit_tests
dspy_test:
runs-on: ubuntu-latest
name: "dspy_test (python: ${{ matrix.python-version }}, uv: ${{ matrix.uv-resolution }})"
strategy:
matrix:
python-version: ["3.10"]
uv-resolution: ["lowest-direct", "highest"]
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 --resolution ${{ matrix.uv-resolution }} \
--exact --group tests pytest tests/unit_tests