@@ -37,26 +37,81 @@ jobs:
3737 name : pysplashsurf.pyi
3838 path : pysplashsurf/pysplashsurf/
3939
40+ # linux_wheels:
41+ # name: Build wheels for "${{ matrix.python-version }}"
42+ # needs: generate-stub
43+ # runs-on: ubuntu-24.04
44+ # strategy:
45+ # fail-fast: false
46+ # matrix:
47+ # include:
48+ # - python-version: "manylinux_x86_64"
49+ # archs: "x86_64"
50+ # enable_test: true
51+ # - python-version: "manylinux_i686"
52+ # archs: "i686"
53+ # enable_test: false
54+ # - python-version: "manylinux_aarch64"
55+ # archs: "aarch64"
56+ # enable_test: false
57+ # - python-version: "manylinux_armv7l"
58+ # archs: "armv7l"
59+ # enable_test: false
60+ # steps:
61+ # - uses: actions/checkout@v4
62+ # - name: Download stub artifact
63+ # uses: actions/download-artifact@v4
64+ # with:
65+ # name: pysplashsurf.pyi
66+ # path: pysplashsurf/pysplashsurf/
67+ # - uses: actions/setup-python@v5
68+ # with:
69+ # python-version: 3.12
70+ # # QEMU is required for non-native archs
71+ # # https://cibuildwheel.pypa.io/en/stable/faq/#emulation
72+ # - name: Set up QEMU
73+ # if: runner.os == 'Linux'
74+ # uses: docker/setup-qemu-action@v3
75+ # with:
76+ # platforms: all
77+ # - name: Install cibuildwheel
78+ # run: python -m pip install cibuildwheel==3.1.3
79+ # - name: Build wheels with tests
80+ # run: python -m cibuildwheel --output-dir wheelhouse pysplashsurf
81+ # if: matrix.enable_test == true
82+ # env:
83+ # CIBW_BUILD: ${{ format('cp312-{0}', matrix.python-version) }}
84+ # CIBW_ARCHS: ${{ matrix.archs }}
85+ # CIBW_BEFORE_ALL_LINUX: curl -sSf https://sh.rustup.rs | sh -s -- -y
86+ # CIBW_ENVIRONMENT_LINUX: "PATH=$HOME/.cargo/bin:$PATH"
87+ # CIBW_TEST_COMMAND: "cargo install --path {project}/splashsurf && pytest pysplashsurf/tests"
88+ # CIBW_TEST_SOURCES: "pysplashsurf/tests"
89+ # CIBW_TEST_REQUIRES: pytest meshio trimesh rtree scipy
90+ # - name: Build wheels without tests
91+ # run: python -m cibuildwheel --output-dir wheelhouse pysplashsurf
92+ # if: matrix.enable_test == false
93+ # env:
94+ # CIBW_BUILD: ${{ format('cp312-{0}', matrix.python-version) }}
95+ # CIBW_ARCHS: ${{ matrix.archs }}
96+ # CIBW_BEFORE_ALL_LINUX: curl -sSf https://sh.rustup.rs | sh -s -- -y
97+ # CIBW_ENVIRONMENT_LINUX: "PATH=$HOME/.cargo/bin:$PATH"
98+ # - name: Upload wheels
99+ # uses: actions/upload-artifact@v4
100+ # with:
101+ # name: wheels-${{ matrix.python-version }}
102+ # path: wheelhouse
103+
40104 linux_wheels :
41- name : Build wheels for " ${{ matrix.python-version }}"
105+ name : Build wheels for Linux ${{ matrix.target }}
42106 needs : generate-stub
43107 runs-on : ubuntu-24.04
44108 strategy :
45- fail-fast : false
46109 matrix :
47110 include :
48- - python-version : " manylinux_x86_64"
49- archs : " x86_64"
50- enable_test : true
51- - python-version : " manylinux_i686"
52- archs : " i686"
53- enable_test : false
54- - python-version : " manylinux_aarch64"
55- archs : " aarch64"
56- enable_test : false
57- - python-version : " manylinux_armv7l"
58- archs : " armv7l"
59- enable_test : false
111+ - target : x86_64
112+ - target : x86
113+ - target : aarch64
114+ - target : armv7
60115 steps :
61116 - uses : actions/checkout@v4
62117 - name : Download stub artifact
@@ -67,38 +122,17 @@ jobs:
67122 - uses : actions/setup-python@v5
68123 with :
69124 python-version : 3.12
70- # QEMU is required for non-native archs
71- # https://cibuildwheel.pypa.io/en/stable/faq/#emulation
72- - name : Set up QEMU
73- if : runner.os == 'Linux'
74- uses : docker/setup-qemu-action@v3
125+ - name : Build wheels
126+ uses : PyO3/maturin-action@v1
75127 with :
76- platforms : all
77- - name : Install cibuildwheel
78- run : python -m pip install cibuildwheel==3.1.3
79- - name : Build wheels with tests
80- run : python -m cibuildwheel --output-dir wheelhouse pysplashsurf
81- if : matrix.enable_test == true
82- env :
83- CIBW_BUILD : ${{ format('cp312-{0}', matrix.python-version) }}
84- CIBW_ARCHS : ${{ matrix.archs }}
85- CIBW_BEFORE_ALL_LINUX : curl -sSf https://sh.rustup.rs | sh -s -- -y
86- CIBW_ENVIRONMENT_LINUX : " PATH=$HOME/.cargo/bin:$PATH"
87- CIBW_TEST_COMMAND : " cargo install --path {project}/splashsurf && pytest pysplashsurf/tests"
88- CIBW_TEST_SOURCES : " pysplashsurf/tests"
89- CIBW_TEST_REQUIRES : pytest meshio trimesh rtree scipy
90- - name : Build wheels without tests
91- run : python -m cibuildwheel --output-dir wheelhouse pysplashsurf
92- if : matrix.enable_test == false
93- env :
94- CIBW_BUILD : ${{ format('cp312-{0}', matrix.python-version) }}
95- CIBW_ARCHS : ${{ matrix.archs }}
96- CIBW_BEFORE_ALL_LINUX : curl -sSf https://sh.rustup.rs | sh -s -- -y
97- CIBW_ENVIRONMENT_LINUX : " PATH=$HOME/.cargo/bin:$PATH"
128+ target : ${{ matrix.target }}
129+ args : --release --out wheelhouse --compatibility pypi -m pysplashsurf/Cargo.toml
130+ # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
131+ manylinux : 2014
98132 - name : Upload wheels
99133 uses : actions/upload-artifact@v4
100134 with :
101- name : wheels-${{ matrix.python-version }}
135+ name : wheels-linux- ${{ matrix.target }}
102136 path : wheelhouse
103137
104138 macos_wheels :
0 commit comments