@@ -13,11 +13,10 @@ jobs:
1313 runs-on : ubuntu-latest
1414 strategy :
1515 matrix :
16- python-version : ['3.8', '3.9', '3.10', '3.11', '3.12']
17- vim-version : ['8.2', '9.0', '9.1']
18- test-suite : ['unit', 'integration', 'performance']
16+ python-version : ['3.10', '3.11', '3.12', '3.13']
17+ test-suite : ['unit', 'integration']
1918 fail-fast : false
20- max-parallel : 6
19+ max-parallel : 4
2120
2221 steps :
2322 - name : Checkout code
@@ -32,59 +31,45 @@ jobs:
3231 uses : actions/cache@v3
3332 with :
3433 path : /tmp/.buildx-cache
35- key : ${{ runner.os }}-buildx-${{ matrix.python-version }}-${{ matrix.vim-version }}-${{ github.sha }}
34+ key : ${{ runner.os }}-buildx-${{ matrix.python-version }}-${{ github.sha }}
3635 restore-keys : |
37- ${{ runner.os }}-buildx-${{ matrix.python-version }}-${{ matrix.vim-version }}-
36+ ${{ runner.os }}-buildx-${{ matrix.python-version }}-
3837 ${{ runner.os }}-buildx-
3938
4039 - name : Build test environment
4140 run : |
42- docker buildx build \
43- --cache-from type=local,src=/tmp/.buildx-cache \
44- --cache-to type=local,dest=/tmp/.buildx-cache-new,mode=max \
41+ # Build the docker compose services
42+ docker compose build \
4543 --build-arg PYTHON_VERSION=${{ matrix.python-version }} \
46- --build-arg VIM_VERSION=${{ matrix.vim-version }} \
47- -t python-mode-test:${{ matrix.python-version }}-${{ matrix.vim-version }} \
48- -f Dockerfile.test-runner \
49- --load \
50- .
44+ --build-arg PYTHON_VERSION_SHORT=${{ matrix.python-version }}
5145
52- - name : Run dual test suite
46+ - name : Run test suite
5347 run : |
54- # Build the test images first
55- docker compose -f docker-compose.test.yml build
56-
57- # Run dual testing (both legacy and Vader tests)
48+ # Set Python version environment variables
49+ export PYTHON_VERSION="${{ matrix.python-version }}"
50+ export PYTHON_VERSION_SHORT="${{ matrix.python-version }}"
51+ export TEST_SUITE="${{ matrix.test-suite }}"
52+ export GITHUB_ACTIONS=true
53+
54+ # Run dual test suite (both legacy and Vader tests)
5855 python scripts/dual_test_runner.py
5956
60- # Also run the advanced orchestrator for performance metrics
61- docker run --rm \
62- -v ${{ github.workspace }}:/workspace:ro \
63- -v /var/run/docker.sock:/var/run/docker.sock \
64- -e TEST_SUITE=${{ matrix.test-suite }} \
65- -e GITHUB_ACTIONS=true \
66- -e GITHUB_SHA=${{ github.sha }} \
67- python-mode-test:${{ matrix.python-version }}-${{ matrix.vim-version }} \
68- python /opt/test_orchestrator.py --parallel 2 --timeout 120
69-
7057 - name : Upload test results
7158 uses : actions/upload-artifact@v4
7259 if : always()
7360 with :
74- name : test-results-${{ matrix.python-version }}-${{ matrix.vim-version }}-${{ matrix. test-suite }}
61+ name : test-results-${{ matrix.python-version }}-${{ matrix.test-suite }}
7562 path : |
7663 test-results.json
7764 test-logs/
7865 results/
79- results/*.md
80- results/*.json
8166
8267 - name : Upload coverage reports
8368 uses : codecov/codecov-action@v3
8469 if : matrix.test-suite == 'unit'
8570 with :
8671 file : ./coverage.xml
87- flags : python-${{ matrix.python-version }}-vim-${{ matrix.vim-version }}
72+ flags : python-${{ matrix.python-version }}
8873
8974 - name : Basic test validation
9075 run : |
0 commit comments