Skip to content

Commit 338848c

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 70f40f5 commit 338848c

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ runs:
5858
git add tests/integration/recordings/
5959
6060
if [ "${{ inputs.run-vision-tests }}" == "true" ]; then
61-
git commit -m "Recordings update from CI (vision)"
61+
git commit -m "Recordings update from CI (vision) (${{ inputs.provider }})"
6262
else
63-
git commit -m "Recordings update from CI"
63+
git commit -m "Recordings update from CI (${{ inputs.provider }})"
6464
fi
6565
6666
git fetch origin ${{ github.ref_name }}
@@ -76,7 +76,8 @@ runs:
7676
if: ${{ always() }}
7777
shell: bash
7878
run: |
79-
sudo docker logs ollama > ollama-${{ inputs.inference-mode }}.log || true
79+
sudo docker logs ollama > ollama-${{ inputs.inference-mode }}.log 2>&1 || true
80+
sudo docker logs vllm > vllm-${{ inputs.inference-mode }}.log 2>&1 || true
8081
8182
- name: Upload logs
8283
if: ${{ always() }}

.github/workflows/integration-tests.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ on:
2020
schedule:
2121
# If changing the cron schedule, update the provider in the test-matrix job
2222
- cron: '0 0 * * *' # (test latest client) Daily at 12 AM UTC
23-
- cron: '1 0 * * 0' # (test vllm) Weekly on Sunday at 1 AM UTC
2423
workflow_dispatch:
2524
inputs:
2625
test-all-client-versions:
@@ -46,7 +45,6 @@ concurrency:
4645
cancel-in-progress: true
4746

4847
jobs:
49-
5048
run-replay-mode-tests:
5149
runs-on: ubuntu-latest
5250
name: ${{ format('Integration Tests ({0}, {1}, {2}, client={3}, vision={4})', matrix.client-type, matrix.provider, matrix.python-version, matrix.client-version, matrix.run-vision-tests) }}
@@ -56,11 +54,14 @@ jobs:
5654
matrix:
5755
client-type: [library, server]
5856
# Use vllm on weekly schedule, otherwise use test-provider input (defaults to ollama)
59-
provider: ${{ (github.event.schedule == '1 0 * * 0') && fromJSON('["vllm"]') || fromJSON(format('["{0}"]', github.event.inputs.test-provider || 'ollama')) }}
57+
provider: [ollama, vllm]
6058
# Use Python 3.13 only on nightly schedule (daily latest client test), otherwise use 3.12
6159
python-version: ${{ github.event.schedule == '0 0 * * *' && fromJSON('["3.12", "3.13"]') || fromJSON('["3.12"]') }}
6260
client-version: ${{ (github.event.schedule == '0 0 * * *' || github.event.inputs.test-all-client-versions == 'true') && fromJSON('["published", "latest"]') || fromJSON('["latest"]') }}
6361
run-vision-tests: [true, false]
62+
exclude:
63+
- provider: vllm
64+
run-vision-tests: true
6465

6566
steps:
6667
- name: Checkout repository

scripts/integration-tests.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ EXCLUDE_TESTS="builtin_tool or safety_with_image or code_interpreter or test_rag
168168

169169
# Additional exclusions for vllm provider
170170
if [[ "$PROVIDER" == "vllm" ]]; then
171-
EXCLUDE_TESTS="${EXCLUDE_TESTS} or test_inference_store_tool_calls"
171+
EXCLUDE_TESTS="${EXCLUDE_TESTS} or test_inference_store_tool_calls or test_text_chat_completion_structured_output"
172172
fi
173173

174174
PYTEST_PATTERN="not( $EXCLUDE_TESTS )"
@@ -215,7 +215,7 @@ TEST_FILES=""
215215
for test_subdir in $(echo "$TEST_SUBDIRS" | tr ',' '\n'); do
216216
# Skip certain test types for vllm provider
217217
if [[ "$PROVIDER" == "vllm" ]]; then
218-
if [[ "$test_subdir" == "safety" ]] || [[ "$test_subdir" == "post_training" ]] || [[ "$test_subdir" == "tool_runtime" ]]; then
218+
if [[ "$test_subdir" == "safety" ]] || [[ "$test_subdir" == "post_training" ]] || [[ "$test_subdir" == "tool_runtime" ]] || [[ "$test_subdir" == "agents" ]]; then
219219
echo "Skipping $test_subdir for vllm provider"
220220
continue
221221
fi

0 commit comments

Comments
 (0)