CI: Add cibuildwheel GitHub Actions workflow#108
Conversation
* Add GitHub Actions based workflow that uses cibuildwheel to build wheels for target platforms. * Add upload of wheels to PyPI on publish using Trusted Publishers.
* Add cibuildwheel tool table to pyproject.toml, defaulting to using 'build[uv]' as the build frontend.
7babbfe to
1f0ac5f
Compare
|
@tacaswell this is ready for review now (thanks for merging PR #107). |
|
👋 Ping @tacaswell. |
|
This would be welcome improvement for us. |
|
I'll sort out the pypi side and merge this in the next week. |
@tacaswell sounds good and thanks! For the last remaining bit after that in Issue #104
I think this can be done similarly to how we're doing things in https://github.com/scikit-hep/scikit-hep-testdata and https://github.com/scikit-hep/boost-histogram, which is just to use purefly |
|
👋 @tacaswell just pinging on this in 2026 to remind us both of this. Let me know if there is anything that is needed on my side that I can do to help. 👍 |
|
@matthewfeickert Can you point me to docs on what I need to do on the pypi side? |
|
@tacaswell It looks like there is a "upload if release" CI job that was skipped in the last run of the workflow. Looks like the trigger rule is: if: github.event_name == 'release' && github.event.action == 'published'It appears creating a new Release (and Git tag) in GH and then using "Publish Release" would trigger this workflow. |
@tacaswell Sure. You want the Adding a Trusted Publisher to an existing PyPI project PyPI docs. |
@peterfarrell That's correct, except with less steps. After the Trusted Publisher has been setup on PyPI to allow for publishing through short lived tokens, then to create a release a GitHub Release datrie/.github/workflows/wheels.yaml Lines 8 to 10 in 142eef5 should be made to trigger datrie/.github/workflows/wheels.yaml Line 119 in 142eef5 No additional actions are needed. |
|
@matthewfeickert could I assist with getting Trusted Publisher setup so a release can be made? LMK what I can do to assist. |
@peterfarrell I don't have permissions on PyPI to setup trusted publishers, so we'll need a project maintainer to do that. So I believe that's @kmike and @tacaswell. |
cibuildwheelto build wheels for target platforms.This workflow copies heavily from the one @henryiii setup for https://github.com/scikit-hep/boost-histogram.
Addresses following components of Issue #104:
Requires PR #107 to go in first.