@@ -21,18 +21,23 @@ jobs:
21
21
with :
22
22
python-version : ${{ matrix.python-version }}
23
23
24
+ - name : Install uv
25
+ uses : astral-sh/setup-uv@v4
26
+ with :
27
+ enable-cache : true
28
+ cache-dependency-glob : " pyproject.toml"
29
+
24
30
- name : Install dependencies
25
31
run : |
26
- python -m pip install --upgrade pip
27
- pip install -e ".[dev]"
32
+ uv sync --extra dev
28
33
29
34
- name : Run flake8
30
35
run : |
31
- flake8 ioc/ tests/
36
+ uv run flake8 ioc/ tests/
32
37
33
38
- name : Run mypy (optional)
34
39
run : |
35
- mypy ioc/ || true
40
+ uv run mypy ioc/ || true
36
41
continue-on-error : true
37
42
38
43
test-core :
@@ -49,15 +54,20 @@ jobs:
49
54
with :
50
55
python-version : ${{ matrix.python-version }}
51
56
57
+ - name : Install uv
58
+ uses : astral-sh/setup-uv@v4
59
+ with :
60
+ enable-cache : true
61
+ cache-dependency-glob : " pyproject.toml"
62
+
52
63
- name : Install core dependencies
53
64
run : |
54
- python -m pip install --upgrade pip
55
- pip install -e .
65
+ uv sync
56
66
57
67
- name : Run core tests (excluding extras)
58
68
run : |
59
69
# Run only core tests, excluding extra package tests
60
- python -m unittest discover -s tests -p "test_*.py" -v 2>&1 | grep -v "extra\." | tee test_output.txt
70
+ uv run python -m unittest discover -s tests -p "test_*.py" -v 2>&1 | grep -v "extra\." | tee test_output.txt
61
71
62
72
# Check results
63
73
if grep -q "FAILED" test_output.txt; then
@@ -86,10 +96,15 @@ jobs:
86
96
with :
87
97
python-version : ${{ matrix.python-version }}
88
98
99
+ - name : Install uv
100
+ uses : astral-sh/setup-uv@v4
101
+ with :
102
+ enable-cache : true
103
+ cache-dependency-glob : " pyproject.toml"
104
+
89
105
- name : Install dependencies with ${{ matrix.extras }}
90
106
run : |
91
- python -m pip install --upgrade pip
92
- pip install -e ".[${{ matrix.extras }}]"
107
+ uv sync --extra ${{ matrix.extras }}
93
108
94
109
- name : Check if extras tests exist and dependencies are available
95
110
id : check_tests
@@ -132,7 +147,7 @@ jobs:
132
147
- name : Run tests for ${{ matrix.extras }}
133
148
if : steps.check_tests.outputs.should_run == 'true'
134
149
run : |
135
- python -m unittest discover -s $(echo "${{ matrix.test_module }}" | tr '.' '/') -p "test_*.py" -v
150
+ uv run python -m unittest discover -s $(echo "${{ matrix.test_module }}" | tr '.' '/') -p "test_*.py" -v
136
151
continue-on-error : true
137
152
138
153
test-all-extras :
@@ -149,10 +164,15 @@ jobs:
149
164
with :
150
165
python-version : ${{ matrix.python-version }}
151
166
167
+ - name : Install uv
168
+ uses : astral-sh/setup-uv@v4
169
+ with :
170
+ enable-cache : true
171
+ cache-dependency-glob : " pyproject.toml"
172
+
152
173
- name : Install all dependencies
153
174
run : |
154
- python -m pip install --upgrade pip
155
- pip install -e ".[flask,jinja2,redis,dev]"
175
+ uv sync --extra flask --extra jinja2 --extra redis --extra dev
156
176
157
177
- name : Create smart test runner
158
178
run : |
@@ -222,7 +242,7 @@ jobs:
222
242
223
243
- name : Run all tests with smart error handling
224
244
run : |
225
- python smart_test_runner.py
245
+ uv run python smart_test_runner.py
226
246
227
247
docs :
228
248
runs-on : ubuntu-latest
@@ -235,15 +255,20 @@ jobs:
235
255
with :
236
256
python-version : ' 3.11'
237
257
258
+ - name : Install uv
259
+ uses : astral-sh/setup-uv@v4
260
+ with :
261
+ enable-cache : true
262
+ cache-dependency-glob : " pyproject.toml"
263
+
238
264
- name : Install dependencies
239
265
run : |
240
- python -m pip install --upgrade pip
241
- pip install -e .
242
- pip install sphinx
266
+ uv sync
267
+ uv pip install sphinx
243
268
244
269
- name : Build documentation
245
270
run : |
246
- sphinx-build -nW -b html -d docs/_build/doctrees docs docs/_build/html
271
+ uv run sphinx-build -nW -b html -d docs/_build/doctrees docs docs/_build/html
247
272
248
273
- name : Upload documentation artifacts
249
274
uses : actions/upload-artifact@v4
@@ -263,15 +288,21 @@ jobs:
263
288
with :
264
289
python-version : ' 3.11'
265
290
291
+ - name : Install uv
292
+ uses : astral-sh/setup-uv@v4
293
+ with :
294
+ enable-cache : true
295
+ cache-dependency-glob : " pyproject.toml"
296
+
266
297
- name : Install build dependencies
267
298
run : |
268
- python -m pip install --upgrade pip
269
- pip install build twine
299
+ uv sync
300
+ uv pip install build twine
270
301
271
302
- name : Build package
272
303
run : |
273
- python -m build
304
+ uv run python -m build
274
305
275
306
- name : Check package
276
307
run : |
277
- twine check dist/*
308
+ uv run twine check dist/*
0 commit comments