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 :
@@ -38,28 +37,7 @@ concurrency:
3837 cancel-in-progress : true
3938
4039jobs :
41- discover-tests :
42- runs-on : ubuntu-latest
43- outputs :
44- test-types : ${{ steps.generate-test-types.outputs.test-types }}
45-
46- steps :
47- - name : Checkout repository
48- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
49-
50- - name : Generate test types
51- id : generate-test-types
52- run : |
53- # Get test directories dynamically, excluding non-test directories
54- # NOTE: we are excluding post_training since the tests take too long
55- TEST_TYPES=$(find tests/integration -maxdepth 1 -mindepth 1 -type d |
56- sed 's|tests/integration/||' |
57- grep -Ev "^(__pycache__|fixtures|test_cases|recordings|non_ci|post_training)$" |
58- sort | jq -R -s -c 'split("\n")[:-1]')
59- echo "test-types=$TEST_TYPES" >> $GITHUB_OUTPUT
60-
6140 run-replay-mode-tests :
62- needs : discover-tests
6341 runs-on : ubuntu-latest
6442 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) }}
6543
@@ -68,11 +46,14 @@ jobs:
6846 matrix :
6947 client-type : [library, server]
7048 # Use vllm on weekly schedule, otherwise use test-provider input (defaults to ollama)
71- provider : ${{ (github.event.schedule == '1 0 * * 0') && fromJSON('["vllm"]') || fromJSON(format('["{0}"]', github.event.inputs.test-provider || 'ollama')) }}
49+ provider : [ollama, vllm]
7250 # Use Python 3.13 only on nightly schedule (daily latest client test), otherwise use 3.12
7351 python-version : ${{ github.event.schedule == '0 0 * * *' && fromJSON('["3.12", "3.13"]') || fromJSON('["3.12"]') }}
7452 client-version : ${{ (github.event.schedule == '0 0 * * *' || github.event.inputs.test-all-client-versions == 'true') && fromJSON('["published", "latest"]') || fromJSON('["latest"]') }}
7553 run-vision-tests : [true, false]
54+ exclude :
55+ - provider : vllm
56+ run-vision-tests : true
7657
7758 steps :
7859 - name : Checkout repository
@@ -87,10 +68,27 @@ jobs:
8768 run-vision-tests : ${{ matrix.run-vision-tests }}
8869 inference-mode : ' replay'
8970
71+ - name : Generate test types
72+ id : generate-test-types
73+ run : |
74+ # Only run inference tests for vllm as these are more likely to exercise the vllm provider
75+ # TODO: Add agent tests for vllm
76+ if [ ${{ matrix.provider }} == "vllm" ]; then
77+ echo "test-types=[\"inference\"]" >> $GITHUB_OUTPUT
78+ exit 0
79+ fi
80+ # Get test directories dynamically, excluding non-test directories
81+ # NOTE: we are excluding post_training since the tests take too long
82+ TEST_TYPES=$(find tests/integration -maxdepth 1 -mindepth 1 -type d |
83+ sed 's|tests/integration/||' |
84+ grep -Ev "^(__pycache__|fixtures|test_cases|recordings|non_ci|post_training)$" |
85+ sort | jq -R -s -c 'split("\n")[:-1]')
86+ echo "test-types=$TEST_TYPES" >> $GITHUB_OUTPUT
87+
9088 - name : Run tests
9189 uses : ./.github/actions/run-and-record-tests
9290 with :
93- test-types : ${{ needs.discover-tests .outputs.test-types }}
91+ test-types : ${{ steps.generate-test-types .outputs.test-types }}
9492 stack-config : ${{ matrix.client-type == 'library' && 'ci-tests' || 'server:ci-tests' }}
9593 provider : ${{ matrix.provider }}
9694 inference-mode : ' replay'
0 commit comments