4646 - name : PyLint checks
4747 run : pipx run --python "${{ steps.python.outputs.python-path }}" nox -s pylint -- --output-format=github
4848
49+ sample :
50+ name : Generate a sample project
51+ needs : lint
52+ runs-on : ubuntu-latest
53+ steps :
54+ - uses : actions/checkout@v6
55+ - uses : actions/setup-python@v6
56+ name : Install Python
57+ with :
58+ python-version : " 3.x"
59+ - uses : astral-sh/setup-uv@v7
60+ - name : Generate a sample project
61+ run : |
62+ uv run --no-sync -m test.test_projects test.test_0_basic.basic_project sample_proj
63+ - uses : actions/upload-artifact@v6
64+ with :
65+ name : sample_proj
66+ path : sample_proj
67+
4968 test :
5069 name : Test on ${{ matrix.os }} (${{ matrix.python_version }}) ${{ matrix.test_select }}
51- needs : lint
70+ needs : sample
5271 runs-on : ${{ matrix.os }}
5372 strategy :
5473 fail-fast : false
@@ -144,9 +163,10 @@ jobs:
144163 fi
145164 echo "CIBW_ENABLE=${CIBW_ENABLE}" >> $GITHUB_ENV
146165
147- - name : Generate a sample project
148- run : |
149- uv run --no-sync -m test.test_projects test.test_0_basic.basic_project sample_proj
166+ - name : Download a sample project
167+ uses : actions/download-artifact@v5
168+ with :
169+ name : sample_proj
150170
151171 - name : Run a sample build (GitHub Action)
152172 uses : ./
@@ -258,7 +278,7 @@ jobs:
258278
259279 test-pyodide :
260280 name : Test pyodide
261- needs : lint
281+ needs : sample
262282 runs-on : ubuntu-24.04
263283 timeout-minutes : 180
264284 steps :
@@ -272,9 +292,10 @@ jobs:
272292 - name : Install dependencies
273293 run : uv sync --no-dev --group test
274294
275- - name : Generate a sample project
276- run : |
277- uv run --no-sync -m test.test_projects test.test_0_basic.basic_project sample_proj
295+ - name : Download a sample project
296+ uses : actions/download-artifact@v5
297+ with :
298+ name : sample_proj
278299
279300 - name : Run a sample build (GitHub Action)
280301 uses : ./
@@ -289,3 +310,39 @@ jobs:
289310 uv run --no-sync ./bin/run_tests.py
290311 env :
291312 CIBW_PLATFORM : pyodide
313+
314+ test-uv-extras :
315+ name : Test uv extra on ${{ matrix.os }} (${{ matrix.python_version }}) ${{ matrix.test_select }}
316+ needs : sample
317+ runs-on : ${{ matrix.os }}
318+ strategy :
319+ fail-fast : false
320+ matrix :
321+ include :
322+ - os : ubuntu-latest
323+ test_select : android
324+ - os : windows-latest
325+ - os : windows-11-arm
326+ - os : macos-15-intel
327+ - os : macos-15
328+ - os : macos-15-intel
329+ test_select : android
330+ - os : macos-15
331+ test_select : android
332+ steps :
333+ - name : Download a sample project
334+ uses : actions/download-artifact@v5
335+ with :
336+ name : sample_proj
337+
338+ - name : Run a sample build (GitHub Action)
339+ uses : ./
340+ with :
341+ extras : uv
342+ package-dir : sample_proj
343+ output-dir : wheelhouse
344+ env :
345+ CIBW_ARCHS_MACOS : x86_64 universal2 arm64
346+ CIBW_BUILD : cp314-*
347+ CIBW_BUILD_FRONTEND : ' build[uv]'
348+ CIBW_PLATFORM : ${{ matrix.test_select }}
0 commit comments