2626 required : true
2727 type : string
2828
29+ permissions :
30+ contents : read
31+
2932jobs :
3033 pypi-build-artifacts :
3134 name : Build artifacts for PyPi on ${{ matrix.os }}
3235 runs-on : ${{ matrix.os }}
3336 strategy :
37+ max-parallel : 15
3438 matrix :
35- os : [ ubuntu-latest, windows-latest, macos-latest ]
39+ os : [ ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-15-intel , macos-latest ]
3640
3741 steps :
38- - uses : actions/checkout@v5
42+ - uses : actions/checkout@v6
3943 with :
4044 fetch-depth : 1
4145
@@ -45,38 +49,41 @@ jobs:
4549 3.10
4650 3.11
4751 3.12
52+ 3.13
4853
49- - name : Install poetry
50- run : make install-poetry
54+ - name : Install UV
55+ uses : astral-sh/setup-uv@v7
5156
5257 - name : Set version with RC
5358 env :
5459 VERSION : ${{ inputs.VERSION }}
55- run : python -m poetry version "${{ env.VERSION }}"
60+ run : uv version "${{ env.VERSION }}"
5661
5762 # Publish the source distribution with the version that's in
5863 # the repository, otherwise the tests will fail
5964 - name : Compile source distribution
60- run : python3 -m poetry build --format= sdist
61- if : startsWith( matrix.os, 'ubuntu')
65+ run : uv build --sdist
66+ if : matrix.os == 'ubuntu-latest'
6267
6368 - name : Build wheels
64- uses : pypa/cibuildwheel@v3.2 .1
69+ uses : pypa/cibuildwheel@v3.3 .1
6570 with :
6671 output-dir : wheelhouse
6772 config-file : " pyproject.toml"
6873 env :
6974 # Ignore 32 bit architectures
7075 CIBW_ARCHS : " auto64"
71- CIBW_PROJECT_REQUIRES_PYTHON : " >=3.10"
72- CIBW_TEST_REQUIRES : " pytest==7.4.2 moto==5.0.1"
73- CIBW_TEST_COMMAND : " pytest {project}/tests/avro/test_decoder.py"
74- # Ignore tests for pypy since not all dependencies are compiled for it
75- # and would require a local rust build chain
76- CIBW_TEST_SKIP : " pp*"
76+ CIBW_PROJECT_REQUIRES_PYTHON : " >=3.10,<3.14"
77+ # Keep these in sync with Python CI job `cibw-dev-env-smoke-test`
78+ # in .github/workflows/python-ci.yml to catch import-time regressions early.
79+ CIBW_BEFORE_TEST : " uv sync --directory {project} --only-group dev --no-install-project"
80+ CIBW_TEST_COMMAND : " uv run --directory {project} pytest tests/avro/test_decoder.py"
81+ # Skip free-threaded (PEP 703) builds until we evaluate decoder_fast support
82+ CIBW_SKIP : " cp3*t-*"
83+
7784
7885 - name : Add source distribution
79- if : startsWith( matrix.os, 'ubuntu')
86+ if : matrix.os == 'ubuntu-latest'
8087 run : ls -lah dist/* && cp dist/* wheelhouse/
8188
8289 - uses : actions/upload-artifact@v4
0 commit comments