Skip to content

Commit e3ff24d

Browse files
committed
TST: setup Python dependencies caching
1 parent 661be13 commit e3ff24d

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

.github/workflows/build-test.yaml

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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:

.github/workflows/type-checking.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ jobs:
3333
# so that we always get compatible versions of
3434
# core dependencies at type-check time
3535
python-version: '3.10'
36-
enable-cache: false
36+
prune-cache: false
37+
cache-suffix: typecheck
3738

3839
- name: Build
3940
run: uv sync --group typecheck

0 commit comments

Comments
 (0)