@@ -3,13 +3,13 @@ name: CI
33on :
44 push :
55 branches :
6- - master
6+ - master
77 pull_request :
88 types : [opened, reopened, synchronize]
99
1010env :
11- UV_VERSION : " 0.4.28 "
12- DEFAULT_PYTHON_VERSION : " 3.12 "
11+ UV_VERSION : 0.6.17
12+ DEFAULT_PYTHON_VERSION : ' 3.13 '
1313
1414concurrency :
1515 group : ${{ github.workflow }}-${{ github.ref }}
@@ -21,46 +21,48 @@ jobs:
2121 runs-on : ubuntu-latest
2222
2323 steps :
24- - name : Check out the repo
25- uses : actions/checkout@v4
24+ - name : Check out the repo
25+ uses : actions/checkout@v4
2626
27- - name : Install uv version ${{ env.UV_VERSION }}
28- uses : astral-sh/setup-uv@v3
29- with :
30- version : ${{ env.UV_VERSION }}
31- enable-cache : true
27+ - name : Install uv version ${{ env.UV_VERSION }}
28+ uses : astral-sh/setup-uv@v6
29+ with :
30+ version : ${{ env.UV_VERSION }}
31+ enable-cache : true
3232
33- - name : Install python ${{ env.DEFAULT_PYTHON_VERSION }} using uv
34- run : uv python install ${{ env.DEFAULT_PYTHON_VERSION }}
33+ - name : Install python ${{ env.DEFAULT_PYTHON_VERSION }} using uv
34+ run : uv python install ${{ env.DEFAULT_PYTHON_VERSION }}
3535
36- - name : Install dependencies
37- run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --only-group lint
36+ - name : Install dependencies
37+ run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --only-group lint
3838
39- - name : Run pre-commit
40- run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync pre-commit run --all-files --color always --show-diff-on-failure
39+ - name : Run pre-commit
40+ run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync pre-commit run --all-files
41+ --color always --show-diff-on-failure
4142
4243 type-checking :
4344 name : type-checking
4445 runs-on : ubuntu-latest
4546
4647 steps :
47- - name : Check out the repo
48- uses : actions/checkout@v4
48+ - name : Check out the repo
49+ uses : actions/checkout@v4
4950
50- - name : Install uv version ${{ env.UV_VERSION }}
51- uses : astral-sh/setup-uv@v3
52- with :
53- version : ${{ env.UV_VERSION }}
54- enable-cache : true
51+ - name : Install uv version ${{ env.UV_VERSION }}
52+ uses : astral-sh/setup-uv@v6
53+ with :
54+ version : ${{ env.UV_VERSION }}
55+ enable-cache : true
5556
56- - name : Install python ${{ env.DEFAULT_PYTHON_VERSION }} using uv
57- run : uv python install ${{ env.DEFAULT_PYTHON_VERSION }}
57+ - name : Install python ${{ env.DEFAULT_PYTHON_VERSION }} using uv
58+ run : uv python install ${{ env.DEFAULT_PYTHON_VERSION }}
5859
59- - name : Install dependencies
60- run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --no-group test --no-group docs
60+ - name : Install dependencies
61+ run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --no-group dev --no-group
62+ docs --no-group test
6163
62- - name : Run pyright
63- run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync pyright
64+ - name : Run pyright
65+ run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync pyright
6466
6567 tests :
6668 name : ${{ matrix.session }} ${{ matrix.python }} [${{ matrix.os }}]
@@ -69,114 +71,119 @@ jobs:
6971 fail-fast : false
7072 matrix :
7173 include :
72- - { python: "3.12" , os: " ubuntu-latest" , session: " tests" }
73- - { python: "3.11" , os: " ubuntu-latest" , session: " tests" }
74- - { python: "3.10" , os: " ubuntu-latest" , session: " tests" }
75- - { python: "3.12" , os: " windows-latest" , session: " tests" }
76- - { python: "3.11" , os: " windows-latest" , session: " tests" }
77- - { python: "3.10" , os: " windows-latest" , session: " tests" }
78- - { python: "3.12" , os: " macos-latest" , session: " tests" }
79- - { python: "3.11" , os: " macos-latest" , session: " tests" }
80- - { python: "3.10" , os: " macos-latest" , session: " tests" }
81- - { python: "3.12" , os: " macos-13" , session: " tests" }
82- - { python: "3.11" , os: " macos-13" , session: " tests" }
83- - { python: "3.10" , os: " macos-13" , session: " tests" }
74+ - {python: '3.13' , os: ubuntu-latest, session: tests}
75+ - {python: '3.12' , os: ubuntu-latest, session: tests}
76+ - {python: '3.11' , os: ubuntu-latest, session: tests}
77+ - {python: '3.13' , os: windows-latest, session: tests}
78+ - {python: '3.12' , os: windows-latest, session: tests}
79+ - {python: '3.11' , os: windows-latest, session: tests}
80+ - {python: '3.13' , os: macos-latest, session: tests}
81+ - {python: '3.12' , os: macos-latest, session: tests}
82+ - {python: '3.11' , os: macos-latest, session: tests}
83+ - {python: '3.13' , os: macos-13, session: tests}
84+ - {python: '3.12' , os: macos-13, session: tests}
85+ - {python: '3.11' , os: macos-13, session: tests}
8486
8587 steps :
86- - name : Check out the repo
87- uses : actions/checkout@v4
88-
89- - name : Install uv version ${{ env.UV_VERSION }}
90- uses : astral-sh/setup-uv@v3
91- with :
92- version : ${{ env.UV_VERSION }}
93- enable-cache : true
94-
95- - name : Install python ${{ matrix.python }} using uv
96- run : uv python install ${{ matrix.python }}
97-
98- - name : Install test dependencies
99- run : uv sync -p ${{ matrix.python }} --frozen --no-group docs --no-group lint
100-
101- - name : Run pytest
102- run : uv run -p ${{ matrix.python }} --no-sync coverage run --parallel-mode -m pytest
103-
104- - name : Upload coverage data
105- uses : actions/upload-artifact@v4
106- with :
107- name : coverage-data-${{ matrix.session }}-${{ matrix.os }}-${{ matrix.python }}
108- include-hidden-files : true
109- path : " .coverage.*"
88+ - name : Check out the repo
89+ uses : actions/checkout@v4
90+
91+ - name : Install uv version ${{ env.UV_VERSION }}
92+ uses : astral-sh/setup-uv@v6
93+ with :
94+ version : ${{ env.UV_VERSION }}
95+ enable-cache : true
96+
97+ - name : Install python ${{ matrix.python }} using uv
98+ run : uv python install ${{ matrix.python }}
99+
100+ - name : Install test dependencies
101+ run : uv sync -p ${{ matrix.python }} --frozen --no-group dev --no-group docs
102+ --no-group lint
103+
104+ - name : Run pytest
105+ run : uv run -p ${{ matrix.python }} --no-sync coverage run --parallel-mode -m
106+ pytest
107+
108+ - name : Upload coverage data
109+ uses : actions/upload-artifact@v4
110+ with :
111+ name : coverage-data-${{ matrix.session }}-${{ matrix.os }}-${{ matrix.python
112+ }}
113+ include-hidden-files : true
114+ path : .coverage.*
110115
111116 docs-build :
112117 name : docs-build
113118 runs-on : ubuntu-latest
114119
115120 steps :
116- - name : Check out the repo
117- uses : actions/checkout@v4
121+ - name : Check out the repo
122+ uses : actions/checkout@v4
118123
119- - name : Install uv version ${{ env.UV_VERSION }}
120- uses : astral-sh/setup-uv@v3
121- with :
122- version : ${{ env.UV_VERSION }}
123- enable-cache : true
124+ - name : Install uv version ${{ env.UV_VERSION }}
125+ uses : astral-sh/setup-uv@v6
126+ with :
127+ version : ${{ env.UV_VERSION }}
128+ enable-cache : true
124129
125- - name : Install python ${{ env.DEFAULT_PYTHON_VERSION }} using uv
126- run : uv python install ${{ env.DEFAULT_PYTHON_VERSION }}
130+ - name : Install python ${{ env.DEFAULT_PYTHON_VERSION }} using uv
131+ run : uv python install ${{ env.DEFAULT_PYTHON_VERSION }}
127132
128- - name : Install dependencies
129- run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --no-group test --no-group lint
133+ - name : Install dependencies
134+ run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --no-group dev --no-group
135+ lint --no-group test
130136
131- - name : Install pandoc
132- uses : pandoc/actions/setup@v1
137+ - name : Install pandoc
138+ uses : pandoc/actions/setup@v1
133139
134- - name : Build docs
135- run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync sphinx-build --color docs docs/_build
140+ - name : Build docs
141+ run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync sphinx-build --color
142+ docs docs/_build
136143
137- - name : Upload docs
138- uses : actions/upload-artifact@v4
139- with :
140- name : docs
141- path : docs/_build
144+ - name : Upload docs
145+ uses : actions/upload-artifact@v4
146+ with :
147+ name : docs
148+ path : docs/_build
142149
143150 coverage :
144151 name : coverage
145152 runs-on : ubuntu-latest
146153 needs : tests
147154
148155 steps :
149- - name : Check out the repo
150- uses : actions/checkout@v4
156+ - name : Check out the repo
157+ uses : actions/checkout@v4
151158
152- - name : Install uv version ${{ env.UV_VERSION }}
153- uses : astral-sh/setup-uv@v3
154- with :
155- version : ${{ env.UV_VERSION }}
156- enable-cache : true
159+ - name : Install uv version ${{ env.UV_VERSION }}
160+ uses : astral-sh/setup-uv@v6
161+ with :
162+ version : ${{ env.UV_VERSION }}
163+ enable-cache : true
157164
158- - name : Install python ${{ env.DEFAULT_PYTHON_VERSION }} using uv
159- run : uv python install ${{ env.DEFAULT_PYTHON_VERSION }}
165+ - name : Install python ${{ env.DEFAULT_PYTHON_VERSION }} using uv
166+ run : uv python install ${{ env.DEFAULT_PYTHON_VERSION }}
160167
161- - name : Install dependencies
162- run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --only-group test
168+ - name : Install dependencies
169+ run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --only-group test
163170
164- - name : Download coverage data
165- uses : actions/download-artifact@v4
166- with :
167- pattern : coverage-data-*
168- merge-multiple : true
171+ - name : Download coverage data
172+ uses : actions/download-artifact@v4
173+ with :
174+ pattern : coverage-data-*
175+ merge-multiple : true
169176
170- - name : Combine coverage data
171- run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync coverage combine
177+ - name : Combine coverage data
178+ run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync coverage combine
172179
173- - name : Display coverage report
174- run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync coverage report -i
180+ - name : Display coverage report
181+ run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync coverage report -i
175182
176- - name : Create coverage report
177- run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync coverage xml -i
183+ - name : Create coverage report
184+ run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync coverage xml -i
178185
179- - name : Upload coverage report
180- uses : codecov/codecov-action@v4
181- with :
182- token : ${{ secrets.CODECOV_TOKEN }}
186+ - name : Upload coverage report
187+ uses : codecov/codecov-action@v5
188+ with :
189+ token : ${{ secrets.CODECOV_TOKEN }}
0 commit comments