@@ -10,9 +10,32 @@ concurrency:
1010 cancel-in-progress : true
1111
1212jobs :
13+ discover :
14+ name : Discover regression systems
15+ runs-on : ubuntu-24.04
16+ outputs :
17+ systems : ${{ steps.set.outputs.systems }}
18+
19+ steps :
20+ - name : Checkout repo
21+ uses : actions/checkout@v4
22+
23+ - name : Generate system matrix
24+ id : set
25+ run : |
26+ systems=$(ls tests/regression/configs | jq -R -s -c 'split("\n")[:-1]')
27+ echo "systems=$systems" >> $GITHUB_OUTPUT
28+
1329 regression :
14- name : Regression tests (including slow)
30+ name : Regression (${{ matrix.system }})
31+ needs : discover
1532 runs-on : ubuntu-24.04
33+
34+ strategy :
35+ fail-fast : false
36+ matrix :
37+ system : ${{ fromJson(needs.discover.outputs.systems) }}
38+
1639 steps :
1740 - name : Checkout repo
1841 uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
@@ -29,19 +52,20 @@ jobs:
2952 path : .testdata
3053 key : codeentropy-testdata-${{ runner.os }}-py314
3154
32- - name : Install CodeEntropy and its testing dependencies
55+ - name : Install CodeEntropy and dependencies
3356 run : |
3457 pip install --upgrade pip
3558 pip install -e .[testing]
3659
37- - name : Run regression test suite
38- run : pytest tests/regression --run-slow
60+ - name : Run regression tests for system
61+ run : |
62+ pytest tests/regression -k "${{ matrix.system }}" --run-slow -vv
3963
4064 - name : Upload regression artifacts on failure
4165 if : failure()
4266 uses : actions/upload-artifact@v4
4367 with :
44- name : regression-failure -artifacts
68+ name : regression-${{ matrix.system }} -artifacts
4569 path : |
4670 .testdata/**
4771 tests/regression/**/.pytest_cache/**
0 commit comments