1515 - ' .github/actions/setup-ollama/action.yml'
1616 - ' .github/actions/setup-test-environment/action.yml'
1717 - ' .github/actions/run-and-record-tests/action.yml'
18- workflow_dispatch :
19- inputs :
20- test-provider :
21- description : ' Test against a specific provider'
22- type : string
23- default : ' ollama'
2418
2519concurrency :
2620 group : ${{ github.workflow }}-${{ github.ref }}
3125 if : contains(github.event.pull_request.labels.*.name, 're-record-tests') ||
3226 contains(github.event.pull_request.labels.*.name, 're-record-vision-tests')
3327 runs-on : ubuntu-latest
34- strategy :
35- matrix :
36- provider : [ollama, vllm]
3728 outputs :
3829 test-types : ${{ steps.generate-test-types.outputs.test-types }}
3930 matrix-modes : ${{ steps.generate-test-types.outputs.matrix-modes }}
@@ -45,21 +36,11 @@ jobs:
4536 - name : Generate test types
4637 id : generate-test-types
4738 run : |
48- if [ ${{ matrix.provider }} == "vllm" ]; then
49- echo "test-types=[\"inference\"]" >> $GITHUB_OUTPUT
50- elif
51- # Get test directories dynamically, excluding non-test directories
52- TEST_TYPES=$(find tests/integration -maxdepth 1 -mindepth 1 -type d -printf "%f\n" |
53- grep -Ev "^(__pycache__|fixtures|test_cases|recordings|post_training)$" |
54- sort | jq -R -s -c 'split("\n")[:-1]')
55- echo "test-types=$TEST_TYPES" >> $GITHUB_OUTPUT
56- fi
57-
5839 labels=$(gh pr view ${{ github.event.pull_request.number }} --json labels --jq '.labels[].name')
5940 echo "labels=$labels"
6041
6142 modes_array=()
62- if [[ $labels == *"re-record-vision-tests"* ]] && [[ ${{ matrix.provider }} == "ollama" ]] ; then
43+ if [[ $labels == *"re-record-vision-tests"* ]]; then
6344 modes_array+=("vision")
6445 fi
6546 if [[ $labels == *"re-record-tests"* ]]; then
8970 fail-fast : false
9071 matrix :
9172 mode : ${{ fromJSON(needs.discover-tests.outputs.matrix-modes) }}
73+ provider : [ollama, vllm]
74+ exclude :
75+ - mode : vision
76+ provider : vllm
9277
9378 steps :
9479 - name : Checkout repository
@@ -97,19 +82,32 @@ jobs:
9782 ref : ${{ github.event.pull_request.head.ref }}
9883 fetch-depth : 0
9984
85+ - name : Generate test types
86+ id : generate-test-types
87+ run : |
88+ if [ ${{ matrix.provider }} == "vllm" ]; then
89+ echo "test-types=[\"inference\"]" >> $GITHUB_OUTPUT
90+ else
91+ # Get test directories dynamically, excluding non-test directories
92+ TEST_TYPES=$(find tests/integration -maxdepth 1 -mindepth 1 -type d -printf "%f\n" |
93+ grep -Ev "^(__pycache__|fixtures|test_cases|recordings|post_training)$" |
94+ sort | jq -R -s -c 'split("\n")[:-1]')
95+ echo "test-types=$TEST_TYPES" >> $GITHUB_OUTPUT
96+ fi
97+
10098 - name : Setup test environment
10199 uses : ./.github/actions/setup-test-environment
102100 with :
103101 python-version : " 3.12" # Use single Python version for recording
104102 client-version : " latest"
105- provider : ${{ inputs.test- provider || 'ollama' }}
103+ provider : ${{ matrix. provider }}
106104 run-vision-tests : ${{ matrix.mode == 'vision' && 'true' || 'false' }}
107105 inference-mode : ' record'
108106
109107 - name : Run and record tests
110108 uses : ./.github/actions/run-and-record-tests
111109 with :
112- test-types : ${{ needs.discover-tests .outputs.test-types }}
110+ test-types : ${{ steps.generate-test-types .outputs.test-types }}
113111 stack-config : ' server:ci-tests' # recording must be done with server since more tests are run
114112 provider : ${{ inputs.test-provider || 'ollama' }}
115113 inference-mode : ' record'
0 commit comments