Skip to content

Commit 75991c1

Browse files
authored
ci: merge install smoke tests profile matrix (#1097)
Using matrix for both python version and profile name creates a lot of jobs which do the same work work. There is a script which already supports running all profiles (with venvs recreation for each profile and failing when at least one fails), so matrix only on python version.
1 parent 69fab2a commit 75991c1

1 file changed

Lines changed: 7 additions & 31 deletions

File tree

.github/workflows/install-smoke.yml

Lines changed: 7 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,13 @@ permissions:
1717

1818
jobs:
1919
install-smoke:
20-
name: Verify ${{ matrix.profile.name }} install
20+
name: Verify install (py${{ matrix.python-version }})
2121
runs-on: ubuntu-latest
2222
if: github.repository == 'a2aproject/a2a-python'
2323
strategy:
24+
fail-fast: false
2425
matrix:
2526
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
26-
profile:
27-
- name: base
28-
extras: ''
29-
- name: http-server
30-
extras: '[http-server]'
31-
- name: fastapi
32-
extras: '[fastapi]'
33-
- name: grpc
34-
extras: '[grpc]'
35-
- name: telemetry
36-
extras: '[telemetry]'
37-
- name: sql
38-
extras: '[sql]'
3927
steps:
4028
- name: Checkout code
4129
uses: actions/checkout@v6
@@ -45,20 +33,8 @@ jobs:
4533
with:
4634
python-version: ${{ matrix.python-version }}
4735

48-
- name: Build package
49-
run: uv build --wheel
50-
51-
- name: Install with ${{ matrix.profile.name }} dependencies only
52-
run: |
53-
uv venv .venv-smoke
54-
# Install only the built wheel + the profile's extras -- no
55-
# dev deps. This simulates what an end-user gets with
56-
# `pip install a2a-sdk${{ matrix.profile.extras }}`.
57-
WHEEL=$(ls dist/*.whl)
58-
VIRTUAL_ENV=.venv-smoke uv pip install "${WHEEL}${{ matrix.profile.extras }}"
59-
60-
- name: List installed packages
61-
run: VIRTUAL_ENV=.venv-smoke uv pip list
62-
63-
- name: Run smoke test (imports + runtime checks)
64-
run: .venv-smoke/bin/python -m tests.install_smoke ${{ matrix.profile.name }}
36+
# Builds the wheel once, then installs + smoke-tests every profile
37+
# in its own clean venv. Same script developers run locally, so CI
38+
# and local repro stay in sync. Aggregates per-profile failures.
39+
- name: Verify all install profiles
40+
run: scripts/test_install_smoke.sh '' ${{ matrix.python-version }}

0 commit comments

Comments
 (0)