Skip to content

Commit 8337035

Browse files
committed
ci: integrate vLLM inference tests with GitHub Actions workflows
Add vLLM provider support to integration test CI workflows alongside existing Ollama support. Configure provider-specific test execution where vLLM runs only inference specific tests (excluding vision tests) while Ollama continues to run the full test suite. This enables comprehensive CI testing of both inference providers but keeps the vLLM footprint small, this can be expanded later if it proves to not be too disruptive. Signed-off-by: Derek Higgins <[email protected]>
1 parent d03cdf1 commit 8337035

File tree

3 files changed

+27
-7
lines changed

3 files changed

+27
-7
lines changed

.github/actions/run-and-record-tests/action.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ runs:
6868
echo "New recordings detected, committing and pushing"
6969
git add tests/integration/recordings/
7070
71-
git commit -m "Recordings update from CI (suite: ${{ inputs.suite }})"
71+
git commit -m "Recordings update from CI (setup: ${{ inputs.setup }}, suite: ${{ inputs.suite }})"
72+
7273
git fetch origin ${{ github.ref_name }}
7374
git rebase origin/${{ github.ref_name }}
7475
echo "Rebased successfully"
@@ -82,7 +83,8 @@ runs:
8283
if: ${{ always() }}
8384
shell: bash
8485
run: |
85-
sudo docker logs ollama > ollama-${{ inputs.inference-mode }}.log || true
86+
sudo docker logs ollama > ollama-${{ inputs.inference-mode }}.log 2>&1 || true
87+
sudo docker logs vllm > vllm-${{ inputs.inference-mode }}.log 2>&1 || true
8688
8789
- name: Upload logs
8890
if: ${{ always() }}

.github/workflows/integration-tests.yml

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ on:
2121
schedule:
2222
# If changing the cron schedule, update the provider in the test-matrix job
2323
- cron: '0 0 * * *' # (test latest client) Daily at 12 AM UTC
24-
- cron: '1 0 * * 0' # (test vllm) Weekly on Sunday at 1 AM UTC
2524
workflow_dispatch:
2625
inputs:
2726
test-all-client-versions:
@@ -48,24 +47,38 @@ jobs:
4847
fail-fast: false
4948
matrix:
5049
client-type: [library, server]
51-
# Use vllm on weekly schedule, otherwise use test-setup input (defaults to ollama)
52-
setup: ${{ (github.event.schedule == '1 0 * * 0') && fromJSON('["vllm"]') || fromJSON(format('["{0}"]', github.event.inputs.test-setup || 'ollama')) }}
5350
# Use Python 3.13 only on nightly schedule (daily latest client test), otherwise use 3.12
5451
python-version: ${{ github.event.schedule == '0 0 * * *' && fromJSON('["3.12", "3.13"]') || fromJSON('["3.12"]') }}
5552
client-version: ${{ (github.event.schedule == '0 0 * * *' || github.event.inputs.test-all-client-versions == 'true') && fromJSON('["published", "latest"]') || fromJSON('["latest"]') }}
53+
setup: [ollama, vllm]
5654
suite: [base, vision]
55+
exclude:
56+
- setup: vllm
57+
suite: vision
58+
5759

5860
steps:
5961
- name: Checkout repository
6062
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
6163

64+
# This could in theory be done in the matrix, but it was getting too complex
65+
- name: Update Matrix
66+
id: update-matrix
67+
run: |
68+
REWRITTEN_SUITE="${{ matrix.suite }}"
69+
if [[ "${{ matrix.setup }}" == "vllm" && "${{ matrix.suite }}" == "base" ]]; then
70+
REWRITTEN_SUITE="base-vllm-subset"
71+
fi
72+
echo "suite=${REWRITTEN_SUITE}" >> $GITHUB_OUTPUT
73+
echo "Rewritten suite: ${REWRITTEN_SUITE}"
74+
6275
- name: Setup test environment
6376
uses: ./.github/actions/setup-test-environment
6477
with:
6578
python-version: ${{ matrix.python-version }}
6679
client-version: ${{ matrix.client-version }}
6780
setup: ${{ matrix.setup }}
68-
suite: ${{ matrix.suite }}
81+
suite: ${{ steps.update-matrix.outputs.suite }}
6982
inference-mode: 'replay'
7083

7184
- name: Run tests
@@ -74,4 +87,4 @@ jobs:
7487
stack-config: ${{ matrix.client-type == 'library' && 'ci-tests' || 'server:ci-tests' }}
7588
setup: ${{ matrix.setup }}
7689
inference-mode: 'replay'
77-
suite: ${{ matrix.suite }}
90+
suite: ${{ steps.update-matrix.outputs.suite }}

tests/integration/suites.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,11 @@ class Setup(BaseModel):
133133
roots=base_roots,
134134
default_setup="ollama",
135135
),
136+
"base-vllm-subset": Suite(
137+
name="base-vllm-subset",
138+
roots=["tests/integration/inference"],
139+
default_setup="vllm",
140+
),
136141
"responses": Suite(
137142
name="responses",
138143
roots=["tests/integration/responses"],

0 commit comments

Comments
 (0)