@@ -3,13 +3,13 @@ name: CI
3
3
on :
4
4
push :
5
5
branches :
6
- - master
6
+ - master
7
7
pull_request :
8
8
types : [opened, reopened, synchronize]
9
9
10
10
env :
11
- UV_VERSION : " 0.5.2"
12
- DEFAULT_PYTHON_VERSION : " 3.12"
11
+ UV_VERSION : 0.5.2
12
+ DEFAULT_PYTHON_VERSION : ' 3.12'
13
13
14
14
concurrency :
15
15
group : ${{ github.workflow }}-${{ github.ref }}
@@ -21,46 +21,48 @@ jobs:
21
21
runs-on : ubuntu-latest
22
22
23
23
steps :
24
- - name : Check out the repo
25
- uses : actions/checkout@v4
24
+ - name : Check out the repo
25
+ uses : actions/checkout@v4
26
26
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
32
32
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 }}
35
35
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
38
38
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
41
42
42
43
type-checking :
43
44
name : type-checking
44
45
runs-on : ubuntu-latest
45
46
46
47
steps :
47
- - name : Check out the repo
48
- uses : actions/checkout@v4
48
+ - name : Check out the repo
49
+ uses : actions/checkout@v4
49
50
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
55
56
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 }}
58
59
59
- - name : Install dependencies
60
- run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --all-extras --no-group dev --no-group docs --no-group test
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
61
63
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
64
66
65
67
tests :
66
68
name : ${{ matrix.session }} ${{ matrix.python }} [${{ matrix.os }}]
@@ -69,126 +71,132 @@ jobs:
69
71
fail-fast : false
70
72
matrix :
71
73
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}
85
87
86
88
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 dev --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 dev --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 }}
122
128
123
129
docs-build :
124
130
name : docs-build
125
131
runs-on : ubuntu-latest
126
132
127
133
steps :
128
- - name : Check out the repo
129
- uses : actions/checkout@v4
134
+ - name : Check out the repo
135
+ uses : actions/checkout@v4
130
136
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
136
142
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 }}
139
145
140
- - name : Install dependencies
141
- run : uv sync -p ${{ env.DEFAULT_PYTHON_VERSION }} --frozen --extra rhino --extra dxf --no-group dev --no-group lint --no-group test
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
142
149
143
- - name : Install pandoc
144
- uses : pandoc/actions/setup@v1
150
+ - name : Install pandoc
151
+ uses : pandoc/actions/setup@v1
145
152
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
148
156
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
154
162
155
163
coverage :
156
164
name : coverage
157
165
runs-on : ubuntu-latest
158
166
needs : tests
159
167
160
168
steps :
161
- - name : Check out the repo
162
- uses : actions/checkout@v4
169
+ - name : Check out the repo
170
+ uses : actions/checkout@v4
163
171
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
169
177
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 }}
172
180
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
175
183
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
181
189
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
184
192
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
187
195
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
190
198
191
- - name : Upload coverage report
192
- uses : codecov/codecov-action@v5
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