@@ -49,24 +49,28 @@ jobs:
4949 sync_args : [--extra=full]
5050 tests-type : [unit]
5151 test-runner : [pytest]
52+ cache-suffix : [null]
5253 include :
5354 - os : windows-latest
5455 python-version : ' 3.13'
5556 sync_args : --extra=full
5657 tests-type : unit
5758 test-runner : pytest
59+ label : alldeps
5860 - os : ubuntu-22.04
5961 python-version : ' 3.10.4'
6062 sync_args : --resolution=lowest
6163 tests-type : unit
6264 test-runner : pytest
65+ cache-suffix : oldestdeps
6366 - os : ubuntu-latest
6467 # this job is necessary for non-answer, 'yield' based tests
6568 # because pytest doesn't support such tests
6669 python-version : ' 3.10'
6770 sync_args : " --extra=full --group=nosetest"
6871 tests-type : unit
6972 test-runner : nose
73+ lcache-suffix : alldeps-nose
7074 - os : ubuntu-latest
7175 # answer tests use 'yield', so they require nose
7276 # they are also attached to a specific, occasionally updated, Python version
@@ -75,12 +79,14 @@ jobs:
7579 sync_args : " --extra=full --group=nosetest"
7680 tests-type : answer
7781 test-runner : nose
82+ cache-suffix : alldeps-nose
7883 - os : ubuntu-latest
7984 # minimal tests with latest Python and no optional dependencies
8085 python-version : ' 3.14'
8186 sync_args : null
8287 tests-type : unit
8388 test-runner : pytest
89+ cache-suffix : minimal
8490
8591 runs-on : ${{ matrix.os }}
8692
@@ -90,14 +96,15 @@ jobs:
9096 cancel-in-progress : true
9197
9298 steps :
99+ - name : Checkout repo (bare)
100+ if : matrix.tests-type != 'answer'
101+ uses : actions/checkout@v5
93102 - name : Set up Python
94103 uses : astral-sh/setup-uv@v7
95104 with :
96105 python-version : ${{ matrix.python-version }}
97- enable-cache : false
98- - name : Checkout repo (bare)
99- if : matrix.tests-type != 'answer'
100- uses : actions/checkout@v5
106+ cache-suffix : ${{ matrix.cache-suffix }}
107+ prune-cache : false
101108 - name : Checkout repo (with submodules)
102109 if : matrix.tests-type == 'answer'
103110 uses : actions/checkout@v5
@@ -136,17 +143,15 @@ jobs:
136143 cancel-in-progress : true
137144
138145 steps :
146+ - name : Checkout repo (with submodules)
147+ uses : actions/checkout@v5
148+ with :
149+ submodules : true
139150 - name : Set up Python
140151 uses : astral-sh/setup-uv@v7
141152 with :
142153 python-version : ' 3.11'
143154 enable-cache : false
144-
145- - name : Checkout repo (with submodules)
146- uses : actions/checkout@v5
147- with :
148- submodules : true
149-
150155 - name : Install dependencies and yt
151156 shell : bash
152157 env :
0 commit comments