2727 - name : Install Python
2828 uses : actions/setup-python@v5
2929 with :
30- python-version : ' 3.10'
30+ python-version : " 3.10"
3131
3232 - name : Build wheel
3333 run : |
@@ -46,12 +46,11 @@ jobs:
4646 strategy :
4747 fail-fast : false
4848 matrix :
49- os : [ubuntu-latest, windows-latest, macos-latest]
50- pyver : [cp39, cp310, cp311, cp312, cp313]
49+ os : [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-latest]
5150
5251 steps :
5352 - name : Checkout repo
54- uses : actions/checkout@v3
53+ uses : actions/checkout@v5
5554 with :
5655 submodules : true
5756
@@ -63,65 +62,25 @@ jobs:
6362 MACOSX_DEPLOYMENT_TARGET : " 11.0"
6463 CIBW_TEST_COMMAND : " pytest {package}/tests"
6564 CIBW_BEFORE_TEST : pip install -r {package}/test-requirements.txt
66- # mac needs ninja to build
67- CIBW_BEFORE_BUILD_MACOS : brew install ninja
65+
66+ CIBW_ENVIRONMENT_MACOS : |
67+ MACOSX_DEPLOYMENT_TARGET=11.0
68+
6869 # remove system swig (cmake bug doesn't respect python venv)
6970 # https://github.com/swig/swig/issues/2481#issuecomment-1949573105
7071 CIBW_BEFORE_BUILD_LINUX : rm -f $(which swig) && rm -f $(which swig4.0)
71- # configure cibuildwheel to build native archs ('auto'), and some emulated ones
72- CIBW_ARCHS_LINUX : x86_64
73- CIBW_ARCHS_WINDOWS : AMD64
74- CIBW_ARCHS_MACOS : x86_64 arm64
75- # only build current supported python: https://devguide.python.org/versions/
76- # don't build pypy or musllinux to save build time. TODO: find a good way to support those archs
77- CIBW_BUILD : ${{matrix.pyver}}-*
78- CIBW_SKIP : cp38-* pp* *-musllinux*
72+ # skip 3.8 and any free threaded variants
73+ CIBW_SKIP : cp38-* cp3??t-*
74+ CIBW_ARCHS : native
7975 # Will avoid testing on emulated architectures
8076 # Skip trying to test arm64 builds on Intel Macs
8177 CIBW_TEST_SKIP : " *-*linux_{aarch64,ppc64le,s390x} *-macosx_universal2:arm64"
8278 CIBW_BUILD_VERBOSITY : 1
8379
8480 - uses : actions/upload-artifact@v4
8581 with :
86- name : wheels- ${{ matrix.os }}-${{ matrix.pyver }}
82+ name : wheelhouse_ ${{ matrix.os }}
8783 path : ./wheelhouse/*.whl
8884
89- build_cross_wheels :
90- runs-on : ubuntu-latest
91- strategy :
92- fail-fast : false
93- matrix :
94- pyver : [cp39, cp310, cp311, cp312, cp313]
95-
96- steps :
97- - name : Checkout repo
98- uses : actions/checkout@v5
99- with :
100- submodules : true
101-
102- - name : Set up QEMU
103- if : runner.os == 'Linux'
104- uses : docker/setup-qemu-action@v2
105- with :
106- platforms : all
10785
108- - name : Build wheels
109- uses : pypa/cibuildwheel@v3.1.4
110- with :
111- package-dir : ./swmm-toolkit
112- env :
113- # remove system swig (cmake bug doesn't respect python venv)
114- # https://github.com/swig/swig/issues/2481#issuecomment-1949573105
115- CIBW_BEFORE_BUILD_LINUX : rm -f $(which swig) && rm -f $(which swig4.0)
116- # configure cibuildwheel to build native archs ('auto'), and some emulated ones
117- CIBW_ARCHS_LINUX : aarch64
118- # only build current supported python: https://devguide.python.org/versions/
119- # don't build pypy or musllinux to save build time. TODO: find a good way to support those archs
120- CIBW_BUILD : ${{matrix.pyver}}-*
121- CIBW_SKIP : cp-*38 pp* *-musllinux*
122- CIBW_BUILD_VERBOSITY : 1
123-
124- - uses : actions/upload-artifact@v4
125- with :
126- name : wheels-linux-aarch64-${{ matrix.pyver }}
127- path : ./wheelhouse/*.whl
86+
0 commit comments