@@ -29,13 +29,16 @@ jobs:
29
29
- name : Fetch all tags
30
30
run : git fetch --depth=1 --tags
31
31
32
- - name : Set up Python
32
+ - name : Setup Python
33
33
uses : actions/setup-python@v5
34
34
with :
35
- python-version : " 3.11 "
35
+ python-version : " 3.12 "
36
36
37
- - name : Install uv
38
- run : pip install uv
37
+ - name : Setup uv
38
+ uses : astral-sh/setup-uv@v3
39
+ with :
40
+ enable-cache : true
41
+ cache-dependency-glob : pyproject.toml
39
42
40
43
- name : Install dependencies
41
44
run : make setup
49
52
- name : Check if the code is correctly typed
50
53
run : make check-types
51
54
52
- - name : Check for vulnerabilities in dependencies
53
- run : make check-dependencies
54
-
55
55
- name : Check for breaking changes in the API
56
56
run : make check-api
57
57
@@ -66,13 +66,17 @@ jobs:
66
66
echo 'jobs=[
67
67
{"os": "macos-latest"},
68
68
{"os": "windows-latest"},
69
- {"python-version": "3.9"},
70
69
{"python-version": "3.10"},
71
70
{"python-version": "3.11"},
72
- {"python-version": "3.12"}
71
+ {"python-version": "3.12"},
72
+ {"python-version": "3.13"},
73
+ {"python-version": "3.14"}
73
74
]' | tr -d '[:space:]' >> $GITHUB_OUTPUT
74
75
else
75
- echo 'jobs=[]' >> $GITHUB_OUTPUT
76
+ echo 'jobs=[
77
+ {"os": "macos-latest", "resolution": "lowest-direct"},
78
+ {"os": "windows-latest", "resolution": "lowest-direct"}
79
+ ]' | tr -d '[:space:]' >> $GITHUB_OUTPUT
76
80
fi
77
81
78
82
tests :
@@ -85,29 +89,39 @@ jobs:
85
89
- macos-latest
86
90
- windows-latest
87
91
python-version :
88
- - " 3.8"
89
92
- " 3.9"
90
93
- " 3.10"
91
94
- " 3.11"
92
95
- " 3.12"
96
+ - " 3.13"
97
+ - " 3.14"
98
+ resolution :
99
+ - highest
100
+ - lowest-direct
93
101
exclude : ${{ fromJSON(needs.exclude-test-jobs.outputs.jobs) }}
94
102
runs-on : ${{ matrix.os }}
95
- continue-on-error : ${{ matrix.python-version == '3.12 ' }}
103
+ continue-on-error : ${{ matrix.python-version == '3.14 ' }}
96
104
97
105
steps :
98
106
- name : Checkout
99
107
uses : actions/checkout@v4
100
108
101
- - name : Set up Python
109
+ - name : Setup Python
102
110
uses : actions/setup-python@v5
103
111
with :
104
112
python-version : ${{ matrix.python-version }}
105
113
allow-prereleases : true
106
114
107
- - name : Install uv
108
- run : pip install uv
115
+ - name : Setup uv
116
+ uses : astral-sh/setup-uv@v3
117
+ with :
118
+ enable-cache : true
119
+ cache-dependency-glob : pyproject.toml
120
+ cache-suffix : py${{ matrix.python-version }}
109
121
110
122
- name : Install dependencies
123
+ env :
124
+ UV_RESOLUTION : ${{ matrix.resolution }}
111
125
run : make setup
112
126
113
127
- name : Run the test suite
0 commit comments