@@ -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.27 "
12- DEFAULT_PYTHON_VERSION : " 3.12"
11+ UV_VERSION : 0.5.2
12+ DEFAULT_PYTHON_VERSION : ' 3.12'
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@v3
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@v3
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 --all-extras --no-group test --no-group docs
60+ - name : Install dependencies
61+ run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --all-extras --no-group
62+ dev --no-group 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,126 +71,132 @@ 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" }
84- - { python: " 3.12" , os: " ubuntu-latest" , session: " tests-extended" }
74+ - {python: ' 3.12' , os: ubuntu-latest, session: tests}
75+ - {python: ' 3.11' , os: ubuntu-latest, session: tests}
76+ - {python: ' 3.10' , os: ubuntu-latest, session: tests}
77+ - {python: ' 3.12' , os: windows-latest, session: tests}
78+ - {python: ' 3.11' , os: windows-latest, session: tests}
79+ - {python: ' 3.10' , os: windows-latest, session: tests}
80+ - {python: ' 3.12' , os: macos-latest, session: tests}
81+ - {python: ' 3.11' , os: macos-latest, session: tests}
82+ - {python: ' 3.10' , os: macos-latest, session: tests}
83+ - {python: ' 3.12' , os: macos-13, session: tests}
84+ - {python: ' 3.11' , os: macos-13, session: tests}
85+ - {python: ' 3.10' , os: macos-13, session: tests}
86+ - {python: ' 3.12' , os: ubuntu-latest, session: tests-extended}
8587
8688 steps :
87- - name : Check out the repo
88- uses : actions/checkout@v4
89-
90- - name : Install uv version ${{ env.UV_VERSION }}
91- uses : astral-sh/setup-uv@v3
92- with :
93- version : ${{ env.UV_VERSION }}
94- enable-cache : true
95-
96- - name : Install python ${{ matrix.python }} using uv
97- run : uv python install ${{ matrix.python }}
98-
99- - name : Install test dependencies
100- if : matrix.session != 'tests-extended'
101- run : uv sync -p ${{ matrix.python }} --frozen --extra rhino --extra dxf --no-group docs --no-group lint
102-
103- - name : Install extended test dependencies
104- if : matrix.session == 'tests-extended'
105- run : uv sync -p ${{ matrix.python }} --frozen --all-extras --no-group docs --no-group lint
106-
107- - name : Run pytest
108- run : uv run -p ${{ matrix.python }} --no-sync coverage run --parallel-mode -m pytest -m 'not benchmark_suite' --junitxml=junit.xml -o junit_family=legacy
109-
110- - name : Upload coverage data
111- uses : actions/upload-artifact@v4
112- with :
113- name : coverage-data-${{ matrix.session }}-${{ matrix.os }}-${{ matrix.python }}
114- include-hidden-files : true
115- path : " .coverage.*"
116-
117- - name : Upload test results to Codecov
118- if : matrix.session == 'tests-extended'
119- uses : codecov/test-results-action@v1
120- with :
121- token : ${{ secrets.CODECOV_TOKEN }}
89+ - name : Check out the repo
90+ uses : actions/checkout@v4
91+
92+ - name : Install uv version ${{ env.UV_VERSION }}
93+ uses : astral-sh/setup-uv@v3
94+ with :
95+ version : ${{ env.UV_VERSION }}
96+ enable-cache : true
97+
98+ - name : Install python ${{ matrix.python }} using uv
99+ run : uv python install ${{ matrix.python }}
100+
101+ - name : Install test dependencies
102+ if : matrix.session != 'tests-extended'
103+ run : uv sync -p ${{ matrix.python }} --frozen --extra rhino --extra dxf --no-group
104+ dev --no-group docs --no-group lint
105+
106+ - name : Install extended test dependencies
107+ if : matrix.session == 'tests-extended'
108+ run : uv sync -p ${{ matrix.python }} --frozen --all-extras --no-group dev --no-group
109+ docs --no-group lint
110+
111+ - name : Run pytest
112+ run : uv run -p ${{ matrix.python }} --no-sync coverage run --parallel-mode -m
113+ pytest -m 'not benchmark_suite' --junitxml=junit.xml -o junit_family=legacy
114+
115+ - name : Upload coverage data
116+ uses : actions/upload-artifact@v4
117+ with :
118+ name : coverage-data-${{ matrix.session }}-${{ matrix.os }}-${{ matrix.python
119+ }}
120+ include-hidden-files : true
121+ path : .coverage.*
122+
123+ - name : Upload test results to Codecov
124+ if : matrix.session == 'tests-extended'
125+ uses : codecov/test-results-action@v1
126+ with :
127+ token : ${{ secrets.CODECOV_TOKEN }}
122128
123129 docs-build :
124130 name : docs-build
125131 runs-on : ubuntu-latest
126132
127133 steps :
128- - name : Check out the repo
129- uses : actions/checkout@v4
134+ - name : Check out the repo
135+ uses : actions/checkout@v4
130136
131- - name : Install uv version ${{ env.UV_VERSION }}
132- uses : astral-sh/setup-uv@v3
133- with :
134- version : ${{ env.UV_VERSION }}
135- enable-cache : true
137+ - name : Install uv version ${{ env.UV_VERSION }}
138+ uses : astral-sh/setup-uv@v3
139+ with :
140+ version : ${{ env.UV_VERSION }}
141+ enable-cache : true
136142
137- - name : Install python ${{ env.DEFAULT_PYTHON_VERSION }} using uv
138- run : uv python install ${{ env.DEFAULT_PYTHON_VERSION }}
143+ - name : Install python ${{ env.DEFAULT_PYTHON_VERSION }} using uv
144+ run : uv python install ${{ env.DEFAULT_PYTHON_VERSION }}
139145
140- - name : Install dependencies
141- run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --extra rhino --extra dxf --no-group test --no-group lint
146+ - name : Install dependencies
147+ run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --extra rhino --extra
148+ dxf --no-group dev --no-group lint --no-group test
142149
143- - name : Install pandoc
144- uses : pandoc/actions/setup@v1
150+ - name : Install pandoc
151+ uses : pandoc/actions/setup@v1
145152
146- - name : Build docs
147- run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync sphinx-build --color docs docs/_build
153+ - name : Build docs
154+ run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync sphinx-build --color
155+ docs docs/_build
148156
149- - name : Upload docs
150- uses : actions/upload-artifact@v4
151- with :
152- name : docs
153- path : docs/_build
157+ - name : Upload docs
158+ uses : actions/upload-artifact@v4
159+ with :
160+ name : docs
161+ path : docs/_build
154162
155163 coverage :
156164 name : coverage
157165 runs-on : ubuntu-latest
158166 needs : tests
159167
160168 steps :
161- - name : Check out the repo
162- uses : actions/checkout@v4
169+ - name : Check out the repo
170+ uses : actions/checkout@v4
163171
164- - name : Install uv version ${{ env.UV_VERSION }}
165- uses : astral-sh/setup-uv@v3
166- with :
167- version : ${{ env.UV_VERSION }}
168- enable-cache : true
172+ - name : Install uv version ${{ env.UV_VERSION }}
173+ uses : astral-sh/setup-uv@v3
174+ with :
175+ version : ${{ env.UV_VERSION }}
176+ enable-cache : true
169177
170- - name : Install python ${{ env.DEFAULT_PYTHON_VERSION }} using uv
171- run : uv python install ${{ env.DEFAULT_PYTHON_VERSION }}
178+ - name : Install python ${{ env.DEFAULT_PYTHON_VERSION }} using uv
179+ run : uv python install ${{ env.DEFAULT_PYTHON_VERSION }}
172180
173- - name : Install dependencies
174- run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --only-group test
181+ - name : Install dependencies
182+ run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --only-group test
175183
176- - name : Download coverage data
177- uses : actions/download-artifact@v4
178- with :
179- pattern : coverage-data-*
180- merge-multiple : true
184+ - name : Download coverage data
185+ uses : actions/download-artifact@v4
186+ with :
187+ pattern : coverage-data-*
188+ merge-multiple : true
181189
182- - name : Combine coverage data
183- run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync coverage combine
190+ - name : Combine coverage data
191+ run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync coverage combine
184192
185- - name : Display coverage report
186- run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync coverage report -i
193+ - name : Display coverage report
194+ run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync coverage report -i
187195
188- - name : Create coverage report
189- run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync coverage xml -i
196+ - name : Create coverage report
197+ run : uv run -p ${{ env.DEFAULT_PYTHON_VERSION }} --no-sync coverage xml -i
190198
191- - name : Upload coverage report
192- uses : codecov/codecov-action@v4
193- with :
194- token : ${{ secrets.CODECOV_TOKEN }}
199+ - name : Upload coverage report
200+ uses : codecov/codecov-action@v5
201+ with :
202+ token : ${{ secrets.CODECOV_TOKEN }}
0 commit comments