44 push :
55 tags :
66 - " *"
7- pull_request :
87
98jobs :
10- build_linux_x86_64 :
11- name : Build wheels for linux x86_64
12- runs-on : ubuntu-latest
13- steps :
14- - name : Check out repository
15- uses : actions/checkout@v4
16-
17- - name : Build wheels
18- uses : pypa/cibuildwheel@v2.22.0
19- env :
20- CIBW_ARCHS : x86_64
21- CIBW_PROJECT_REQUIRES_PYTHON : " >=3.9"
22- CIBW_MANYLINUX_X86_64_IMAGE : ghcr.io/artifactdb/prebuilt-hdf5/manylinux_x86_64:0.1.1
23- CIBW_MUSLLINUX_X86_64_IMAGE : ghcr.io/artifactdb/prebuilt-hdf5/musllinux_x86_64:0.1.1
24- CIBW_SKIP : pp*
25-
26- - uses : actions/upload-artifact@v4
27- with :
28- name : cibw-wheels-ubuntu-x86_64
29- path : ./wheelhouse/*.whl
30-
31- build_linux_x86_64_legacy :
32- name : Build wheels for linux x86_64
33- runs-on : ubuntu-latest
34- steps :
35- - name : Check out repository
36- uses : actions/checkout@v4
37-
38- - name : Build wheels
39- uses : pypa/cibuildwheel@v2.22.0
40- env :
41- CIBW_ARCHS : x86_64
42- CIBW_PROJECT_REQUIRES_PYTHON : " >=3.9"
43- CIBW_MANYLINUX_X86_64_IMAGE : ghcr.io/artifactdb/prebuilt-hdf5/manylinux_x86_64_legacy:0.1.2
44- CIBW_BUILD : " *-manylinux_*"
45- CIBW_SKIP : pp*
9+ build_wheels :
10+ name : Build wheels
11+ runs-on : ${{ matrix.os }}
12+ strategy :
13+ matrix :
14+ os : ["ubuntu-latest", "macos-latest"]
15+ python-version : ["3.10", "3.11", "3.12", "3.13", "3.14"]
4616
47- - uses : actions/upload-artifact@v4
48- with :
49- name : cibw-wheels-ubuntu-x86_64_legacy
50- path : ./wheelhouse/*.whl
51-
52- build_macosx_x86_64 :
53- name : Build wheels for macosx x86_64
54- runs-on : macos-13
5517 steps :
5618 - name : Check out repository
5719 uses : actions/checkout@v4
5820
59- - name : Grab prebuilt dependencies
60- run : |
61- curl -L https://github.com/ArtifactDB/prebuilt-hdf5/releases/download/0.1.1/macosx_x86_64.tar.gz > bundle.tar.gz
62- tar -xvf bundle.tar.gz
63-
6421 - name : Build wheels
65- uses : pypa/cibuildwheel@v2.22 .0
22+ uses : pypa/cibuildwheel@v3.3 .0
6623 env :
67- CIBW_ARCHS : x86_64
68- CIBW_PROJECT_REQUIRES_PYTHON : " >=3.9"
69- CIBW_ENVIRONMENT : " MORE_CMAKE_OPTIONS=\" -DCMAKE_INSTALL_PREFIX=$(pwd)/installed -DCMAKE_OSX_ARCHITECTURES=x86_64\" "
70- CIBW_BUILD_VERBOSITY : 3
24+ CIBW_PROJECT_REQUIRES_PYTHON : " >=3.10"
7125 CIBW_SKIP : pp*
72- MACOSX_DEPLOYMENT_TARGET : 13.7
7326
7427 - uses : actions/upload-artifact@v4
7528 with :
76- name : cibw-wheels-macos-x86_64
29+ name : cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
7730 path : ./wheelhouse/*.whl
7831
79- build_macosx_arm64 :
80- name : Build wheels for macosx arm64
81- runs-on : macos-14
82- steps :
83- - name : Check out repository
84- uses : actions/checkout@v4
85-
86- - name : Grab prebuilt dependencies
87- run : |
88- curl -L https://github.com/ArtifactDB/prebuilt-hdf5/releases/download/0.1.1/macosx_arm64.tar.gz > bundle.tar.gz
89- tar -xvf bundle.tar.gz
90-
91- - name : Build wheels
92- uses : pypa/cibuildwheel@v2.22.0
93- env :
94- CIBW_ARCHS : arm64
95- CIBW_PROJECT_REQUIRES_PYTHON : " >=3.9"
96- CIBW_ENVIRONMENT : " MORE_CMAKE_OPTIONS=\" -DCMAKE_INSTALL_PREFIX=$(pwd)/installed -DCMAKE_OSX_ARCHITECTURES=arm64\" "
97- CIBW_BUILD_VERBOSITY : 3
98- CIBW_SKIP : pp*
99- MACOSX_DEPLOYMENT_TARGET : 14.0
100-
101- - uses : actions/upload-artifact@v4
102- with :
103- name : cibw-wheels-maxos_arm64
104- path : ./wheelhouse/*.whl
105-
106- # build_windows_x86_64:
107- # name: Build wheels for windows x86_64
108- # runs-on: windows-2019
109- # steps:
110- # - name: Check out repository
111- # uses: actions/checkout@v4
112- #
113- # - name: Grab prebuilt dependencies
114- # run: |
115- # curl -L https://github.com/ArtifactDB/prebuilt-hdf5/releases/download/0.0.4/windows_x86_64.tar.gz > bundle.tar.gz
116- # tar -xvf bundle.tar.gz
117- # shell: bash
118- #
119- # - name: Store path
120- # run: |
121- # $wd = pwd
122- # echo "INSTALL_DIR=$wd\\installed" >> $env:GITHUB_ENV
123- # shell: powershell
124- #
125- # - name: Build wheels
126- # uses: pypa/cibuildwheel@v2.22.0
127- # env:
128- # CIBW_ARCHS: AMD64
129- # CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9"
130- # CIBW_ENVIRONMENT: "MORE_CMAKE_OPTIONS=\"-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}\" VERBOSE=1"
131- # CIBW_BEFORE_BUILD_WINDOWS: "pip install delvewheel"
132- # CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair -w {dest_dir} {wheel}"
133- # CIBW_TEST_EXTRAS: "testing"
134- # CIBW_TEST_COMMAND: "pytest {package}/tests"
135- # CIBW_BUILD_VERBOSITY: 3
136- # - uses: actions/upload-artifact@v3
137- # with:
138- # path: ./wheelhouse/*.whl
139-
14032 build_sdist :
14133 name : Build source distribution
14234 runs-on : ubuntu-latest
@@ -154,17 +46,16 @@ jobs:
15446 path : dist/*.tar.gz
15547
15648 upload_pypi :
157- if : startsWith(github.ref, 'refs/tags/')
158- needs : [build_linux_x86_64, build_linux_x86_64_legacy, build_macosx_x86_64, build_macosx_arm64, build_sdist]
49+ needs : [build_wheels, build_sdist]
15950 runs-on : ubuntu-latest
51+ permissions :
52+ id-token : write # need this for OIDC
53+
16054 steps :
16155 - uses : actions/download-artifact@v4
16256 with :
16357 pattern : cibw-*
16458 path : dist
16559 merge-multiple : true
16660
167- - uses : pypa/gh-action-pypi-publish@v1.12.2
168- with :
169- user : __token__
170- password : ${{ secrets.PYPI_PASSWORD }}
61+ - uses : pypa/gh-action-pypi-publish@release/v1
0 commit comments