@@ -13,11 +13,10 @@ jobs:
1313runs-on :ubuntu-latest
1414strategy :
1515matrix :
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']
1918fail-fast :false
20- max-parallel :6
19+ max-parallel :4
2120
2221steps :
2322 -name :Checkout code
@@ -32,59 +31,45 @@ jobs:
3231uses :actions/cache@v3
3332with :
3433path :/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 }}
3635restore-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
4140run :|
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 :Rundual test suite
46+ -name :Run test suite
5347run :|
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
7158uses :actions/upload-artifact@v4
7259if :always()
7360with :
74- name :test-results-${{ matrix.python-version }}-${{ matrix.vim-version }}-${{ matrix. test-suite }}
61+ name :test-results-${{ matrix.python-version }}-${{ matrix.test-suite }}
7562path :|
7663 test-results.json
7764 test-logs/
7865 results/
79- results/*.md
80- results/*.json
8166
8267 -name :Upload coverage reports
8368uses :codecov/codecov-action@v3
8469if :matrix.test-suite == 'unit'
8570with :
8671file :./coverage.xml
87- flags :python-${{ matrix.python-version }}-vim-${{ matrix.vim-version }}
72+ flags :python-${{ matrix.python-version }}
8873
8974 -name :Basic test validation
9075run :|