Skip to content

Commit 0e71d65

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 e189289 commit 0e71d65

File tree

3 files changed

+19
-7
lines changed

3 files changed

+19
-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: 10 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:
@@ -39,7 +38,6 @@ concurrency:
3938
cancel-in-progress: true
4039

4140
jobs:
42-
4341
run-replay-mode-tests:
4442
runs-on: ubuntu-latest
4543
name: ${{ format('Integration Tests ({0}, {1}, {2}, client={3}, {4})', matrix.client-type, matrix.setup, matrix.python-version, matrix.client-version, matrix.suite) }}
@@ -48,12 +46,19 @@ jobs:
4846
fail-fast: false
4947
matrix:
5048
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')) }}
5349
# Use Python 3.13 only on nightly schedule (daily latest client test), otherwise use 3.12
5450
python-version: ${{ github.event.schedule == '0 0 * * *' && fromJSON('["3.12", "3.13"]') || fromJSON('["3.12"]') }}
5551
client-version: ${{ (github.event.schedule == '0 0 * * *' || github.event.inputs.test-all-client-versions == 'true') && fromJSON('["published", "latest"]') || fromJSON('["latest"]') }}
56-
suite: [base, vision]
52+
include:
53+
# ollama setup runs both base and vision suites
54+
- setup: ollama
55+
suite: base
56+
- setup: ollama
57+
suite: vision
58+
# vllm setup runs only base-vllm-subset suite
59+
- setup: vllm
60+
suite: base-vllm-subset
61+
5762

5863
steps:
5964
- name: Checkout repository

tests/integration/suites.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,11 @@ class Setup(BaseModel):
106106
roots=base_roots,
107107
default_setup="ollama",
108108
),
109+
"base-vllm-subset": Suite(
110+
name="base-vllm-subset",
111+
roots=["tests/integration/inference"],
112+
default_setup="vllm",
113+
),
109114
"responses": Suite(
110115
name="responses",
111116
roots=["tests/integration/responses"],

0 commit comments

Comments
 (0)