Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 41 additions & 1 deletion .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ jobs:
echo "Great job! No new mypy errors introduced."
fi

# 3. Unit testing (Unit Tests with Matrix)
# 3a. Unit testing (Unit Tests with Matrix)
unit-test:
name: Unit Tests (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
Expand Down Expand Up @@ -149,6 +149,46 @@ jobs:
--ignore=tests/unittests/artifacts/test_artifact_service.py \
--ignore=tests/unittests/tools/google_api_tool/test_googleapi_to_openapi_converter.py

# 3b. Dual-version A2A coverage: This job pins a2a-sdk to 0.3.x and
# runs only the A2A-related tests, so the a2a/_compat.py shim stays
# verified against both SDK majors.
# TODO: Remove this 0.3.x re-run once a2a-sdk 0.3.x support is dropped.
unit-test-a2a-v0-3:
name: A2A v0.3 Tests (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

- name: Install the latest version of uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- name: Install dependencies
run: |
uv venv .venv
source .venv/bin/activate
uv sync --extra test

- name: Run A2A tests against a2a-sdk v0.3
run: |
source .venv/bin/activate
uv pip install --reinstall-package a2a-sdk 'a2a-sdk>=0.3.4,<0.4'
pytest tests/unittests/a2a \
tests/unittests/agents/test_remote_a2a_agent.py \
tests/unittests/integrations/agent_registry/test_agent_registry.py

# 4. Custom file content compliance checks (PR only)
compliance-check:
name: File Content Compliance
Expand Down
3 changes: 3 additions & 0 deletions tests/unittests/a2a/converters/test_part_converter.py
Original file line number Diff line number Diff line change
Expand Up @@ -1251,3 +1251,6 @@ def test_a2a_function_call_with_invalid_base64_thought_signature(self):
assert result.function_call.name == "invalid_sig_tool"
# thought_signature should be None due to decode failure
assert result.thought_signature is None


# CI fork dry-run trigger (no-op); see TODO remove this test branch.
Loading