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,20 +82,33 @@ 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+ 
10098name : 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
114-           provider : ${{ inputs.test- provider || 'ollama'  }} 
112+           provider : ${{ matrix. provider }} 
115113          inference-mode : ' record' 
116114          run-vision-tests : ${{ matrix.mode == 'vision' && 'true' || 'false' }} 
0 commit comments