@@ -51,11 +51,17 @@ jobs:
51
51
strategy :
52
52
matrix :
53
53
python-version : [ '39', '310', '311', '312', '313' ]
54
- cibw_build : [ manylinux_x86_64, macosx_x86_64, macosx_arm64 ]
54
+ cibw_build : [ manylinux_x86_64, manylinux_aarch64, macosx_x86_64, macosx_arm64 ]
55
55
include :
56
56
- cibw_build : manylinux_x86_64
57
57
os : ubuntu-24.04
58
- wheel-name : manylinux_2_28
58
+ wheel-name : manylinux_2_28-x86_64
59
+ - cibw_build : manylinux_aarch64
60
+ os : ubuntu-24.04-arm
61
+ wheel-name : manylinux_2_28-aarch64
62
+ CIBW_BEFORE_BUILD_LINUX : dnf install -y ninja-build perl-IPC-Cmd zip
63
+ # vcpkg source build requires this on ARM, for some reason; cf. https://github.com/NixOS/nixpkgs/issues/335868
64
+ CIBW_ENVIRONMENT_LINUX : VCPKG_FORCE_SYSTEM_BINARIES=1
59
65
- cibw_build : macosx_x86_64
60
66
os : macos-latest
61
67
cibw_archs_macos : x86_64
@@ -90,27 +96,18 @@ jobs:
90
96
with :
91
97
xcode-version : ' 15.4'
92
98
- name : Build wheels
93
- uses : pypa/cibuildwheel@v2.22.0
99
+ uses : pypa/cibuildwheel@v2.23.2
94
100
with :
95
101
package-dir : tiledbsoma.tar.gz
96
102
only : cp${{ matrix.python-version }}-${{ matrix.cibw_build }}
97
103
env :
98
- CIBW_BUILD : ${{ matrix.cibw_build }}
99
104
CIBW_BUILD_VERBOSITY : 1
100
- CIBW_MANYLINUX_X86_64_IMAGE : manylinux_2_28
101
- CIBW_BEFORE_BUILD_LINUX : yum -y remove gcc-toolset-12\*; yum -y install gcc-toolset-13; bash -x -c 'rm -rf tiledbsoma*/dist_links/dist/lib*'
102
- # ^ Delete lib folder that apis/python/setup.py:find_or_build() looks for in deciding to
103
- # run CMake build or not. Otherwise it'll keep reusing the library file built in the
104
- # first iteration of cibuildwheel's outer loop, resulting in wheels with the library
105
- # built for the wrong python version.
106
- CIBW_BEFORE_BUILD : bash -x -c 'rm -rf tiledbsoma*/dist_links/dist/lib*'
107
- # ^ Delete lib folder that apis/python/setup.py:find_or_build() looks for in deciding to
108
- # run CMake build or not. Otherwise it'll keep reusing the library file built in the
109
- # first iteration of cibuildwheel's outer loop, resulting in wheels with the library
110
- # built for the wrong python version.
105
+ CIBW_BEFORE_BUILD_LINUX : ${{ matrix.CIBW_BEFORE_BUILD_LINUX || '' }}
106
+ CIBW_ENVIRONMENT_LINUX : ${{ matrix.CIBW_ENVIRONMENT_LINUX || '' }}
107
+ # Most recent tags with no listed security issues at https://quay.io/repository/pypa/manylinux_2_28_aarch64?tab=tags, ca. 2025-04-03
108
+ CIBW_MANYLINUX_X86_64_IMAGE : quay.io/pypa/manylinux_2_28_x86_64:2025.03.22-2
109
+ CIBW_MANYLINUX_AARCH64_IMAGE : quay.io/pypa/manylinux_2_28_aarch64:2025.03.22-2
111
110
CIBW_ARCHS_MACOS : ${{ matrix.cibw_archs_macos }}
112
- CIBW_ENVIRONMENT_LINUX : CC=/opt/rh/gcc-toolset-13/root/usr/bin/gcc CXX=/opt/rh/gcc-toolset-13/root/usr/bin/g++
113
- CIBW_TEST_SKIP : " *_arm64"
114
111
CMAKE_OSX_ARCHITECTURES : ${{ matrix.cibw_archs_macos }}
115
112
MACOSX_DEPLOYMENT_TARGET : " 13.3"
116
113
@@ -128,6 +125,8 @@ jobs:
128
125
strategy :
129
126
matrix :
130
127
python :
128
+ - undotted-version : ' 39'
129
+ dotted-version : ' 3.9'
131
130
- undotted-version : ' 310'
132
131
dotted-version : ' 3.10'
133
132
- undotted-version : ' 311'
@@ -137,25 +136,23 @@ jobs:
137
136
- undotted-version : ' 313'
138
137
dotted-version : ' 3.13'
139
138
wheel-name :
140
- - manylinux_2_28
139
+ - manylinux_2_28-x86_64
140
+ - manylinux_2_28-aarch64
141
141
- macos-x86_64
142
142
- macos-arm64
143
143
include :
144
- - wheel-name : manylinux_2_28
144
+ - wheel-name : manylinux_2_28-x86_64
145
145
os : ubuntu-24.04
146
146
arch : x86_64
147
- cc : gcc-13
148
- cxx : g++-13
147
+ - wheel-name : manylinux_2_28-aarch64
148
+ os : ubuntu-24.04-arm
149
+ arch : aarch64
149
150
- wheel-name : macos-x86_64
150
151
os : macos-13
151
152
arch : x86_64
152
- cc : clang
153
- cxx : clang++
154
153
- wheel-name : macos-arm64
155
154
os : macos-14
156
155
arch : arm64
157
- cc : clang
158
- cxx : clang++
159
156
fail-fast : false
160
157
steps :
161
158
- name : Set up Python ${{ matrix.python.dotted-version }}
@@ -211,7 +208,6 @@ jobs:
211
208
ls -l dist
212
209
- name : Publish packages to TestPyPI
213
210
uses : pypa/gh-action-pypi-publish@release/v1
214
- continue-on-error : true
215
211
with :
216
212
repository-url : https://test.pypi.org/legacy/
217
213
packages_dir : dist
0 commit comments