@@ -330,9 +330,28 @@ jobs:
330330 cd ..
331331
332332
333+ build-python-sdist :
334+ name : Build source distribution
335+ runs-on : ubuntu-latest
336+ needs : [ rust-clippy, rust-doc, rust-tests, rustfst-python-bench, rustfst-python, python-doc ]
337+ if : startsWith(github.ref, 'refs/tags/rustfst-v')
338+ steps :
339+ - name : Checkout
340+ uses : actions/checkout@v4
341+
342+ - name : Build source distribution
343+ run : pipx run build --sdist
344+
345+ - name : Upload source distribution as artifact
346+ uses : actions/upload-artifact@v4
347+ with :
348+ name : cibw-sdist
349+ path : dist/*.tar.gz
350+
351+
333352 publish-python-wheels :
334353 name : Publish Python Wheels to PyPI
335- needs : [ rust-clippy, rust-doc, rust-tests, rustfst- python-bench, rustfst-python, python-doc ]
354+ needs : [ build- python-sdist ]
336355 if : startsWith(github.ref, 'refs/tags/rustfst-v')
337356
338357 strategy :
@@ -365,10 +384,18 @@ jobs:
365384 # On an Linux Intel runner with qemu installed, build Intel and ARM wheels
366385 CIBW_ARCHS_LINUX : " auto"
367386
387+ - name : Upload wheels as artifacts
388+ uses : actions/upload-artifact@v4
389+ with :
390+ name : cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
391+ path : ./wheelhouse/*.whl
392+
368393 - name : Setup Python
369394 uses : actions/setup-python@v5
395+ with :
396+ python-version : ${{ env.PYTHON_VERSION }}
370397
371- - name : Upload
398+ - name : Upload sdist and wheels to PyPI
372399 run : |
373400 python -m pip install twine
374- python -m twine upload -u "__token__" -p ${{ secrets.PYPI_PASSWORD }} -r pypi --verbose wheelhouse/*
401+ python -m twine upload -u "__token__" -p ${{ secrets.PYPI_PASSWORD }} -r pypi --verbose wheelhouse/* dist/*.tar.gz
0 commit comments