Skip to content

Commit 79784ff

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 3003c64 commit 79784ff

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
@@ -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:
@@ -47,7 +46,6 @@ concurrency:
4746
cancel-in-progress: true
4847

4948
jobs:
50-
5149
run-replay-mode-tests:
5250
runs-on: ubuntu-latest
5351
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) }}
@@ -57,11 +55,14 @@ jobs:
5755
matrix:
5856
client-type: [library, server]
5957
# Use vllm on weekly schedule, otherwise use test-provider input (defaults to ollama)
60-
provider: ${{ (github.event.schedule == '1 0 * * 0') && fromJSON('["vllm"]') || fromJSON(format('["{0}"]', github.event.inputs.test-provider || 'ollama')) }}
58+
provider: [ollama, vllm]
6159
# Use Python 3.13 only on nightly schedule (daily latest client test), otherwise use 3.12
6260
python-version: ${{ github.event.schedule == '0 0 * * *' && fromJSON('["3.12", "3.13"]') || fromJSON('["3.12"]') }}
6361
client-version: ${{ (github.event.schedule == '0 0 * * *' || github.event.inputs.test-all-client-versions == 'true') && fromJSON('["published", "latest"]') || fromJSON('["latest"]') }}
6462
run-vision-tests: [true, false]
63+
exclude:
64+
- provider: vllm
65+
run-vision-tests: true
6566

6667
steps:
6768
- name: Checkout repository

scripts/integration-tests.sh

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

194194
# Additional exclusions for vllm provider
195195
if [[ "$PROVIDER" == "vllm" ]]; then
196-
EXCLUDE_TESTS="${EXCLUDE_TESTS} or test_inference_store_tool_calls"
196+
EXCLUDE_TESTS="${EXCLUDE_TESTS} or test_inference_store_tool_calls or test_text_chat_completion_structured_output"
197197
fi
198198

199199
PYTEST_PATTERN="not( $EXCLUDE_TESTS )"
@@ -240,7 +240,7 @@ TEST_FILES=""
240240
for test_subdir in $(echo "$TEST_SUBDIRS" | tr ',' '\n'); do
241241
# Skip certain test types for vllm provider
242242
if [[ "$PROVIDER" == "vllm" ]]; then
243-
if [[ "$test_subdir" == "safety" ]] || [[ "$test_subdir" == "post_training" ]] || [[ "$test_subdir" == "tool_runtime" ]]; then
243+
if [[ "$test_subdir" == "safety" ]] || [[ "$test_subdir" == "post_training" ]] || [[ "$test_subdir" == "tool_runtime" ]] || [[ "$test_subdir" == "agents" ]]; then
244244
echo "Skipping $test_subdir for vllm provider"
245245
continue
246246
fi

0 commit comments

Comments
 (0)