Skip to content

Fix wheel segfault in 0.2.1 #618

Fix wheel segfault in 0.2.1

Fix wheel segfault in 0.2.1 #618

Workflow file for this run

name: Binary Wheels
on:
workflow_dispatch:
release:
types: [ published ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build_wheels:
name: Build wheel for cp${{ matrix.python }}-${{ matrix.builder }}_${{ matrix.arch }}
runs-on: ${{ matrix.os }}
strategy:
# Ensure that a wheel builder finishes even if another fails. Useful for
# debugging multiple problems in parallel.
fail-fast: false
matrix:
include:
# Linux 64 bit manylinux
- os: ubuntu-latest
arch: x86_64
python: 39
builder: manylinux
- os: ubuntu-latest
arch: x86_64
python: 310
builder: manylinux
- os: ubuntu-latest
arch: x86_64
python: 311
builder: manylinux
- os: ubuntu-latest
arch: x86_64
python: 312
builder: manylinux
# - os: ubuntu-latest
# arch: x86_64
# python: 313
# builder: manylinux
# MacOS x86_64. The macos-13 runner is the last
# Intel-based runner version. At some point we'll
# need to switch to macos-14 and test cross compiling.
- os: macos-13
arch: x86_64
python: 39
builder: macosx
deploy: 13.0
- os: macos-13
arch: x86_64
python: 310
builder: macosx
deploy: 13.0
- os: macos-13
arch: x86_64
python: 311
builder: macosx
deploy: 13.0
- os: macos-13
arch: x86_64
python: 312
builder: macosx
deploy: 13.0
# - os: macos-13
# arch: x86_64
# python: 313
# builder: macosx
# deploy: 13.0
# MacOS arm64
- os: macos-latest
arch: arm64
python: 310
builder: macosx
deploy: 14.0
- os: macos-latest
arch: arm64
python: 311
builder: macosx
deploy: 14.0
- os: macos-latest
arch: arm64
python: 312
builder: macosx
deploy: 14.0
# - os: macos-latest
# arch: arm64
# python: 313
# builder: macosx
# deploy: 14.0
env:
CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.builder }}_${{ matrix.arch }}
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.builder }}_2_28
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.builder }}_2_28
CIBW_BUILD_VERBOSITY: 3
CIBW_ENVIRONMENT_LINUX: >
CC=gcc
CXX=g++
CFLAGS='-O3 -fPIC'
CXXFLAGS='-O3 -fPIC -std=c++14'
BOOST_ROOT=/usr/local
FLAC_ROOT=/usr/local
SO3G_BUILD_BLAS_LIBRARIES='-L/usr/local/lib -lopenblas -fopenmp -lm -lgfortran'
CIBW_ENVIRONMENT_MACOS: >
MACOSX_DEPLOYMENT_TARGET=${{ matrix.deploy }}
CC=gcc-14
CXX=g++-14
CFLAGS='-O3 -fPIC'
CXXFLAGS='-O3 -fPIC -std=c++14'
CPATH='/usr/local/include'
BOOST_ROOT=/usr/local
FLAC_ROOT=/usr/local
SO3G_BUILD_BLAS_LIBRARIES='/usr/local/lib/libopenblas.dylib'
CIBW_BEFORE_BUILD_LINUX: ./wheels/install_deps_linux.sh
CIBW_BEFORE_BUILD_MACOS: >
ln -s $(dirname $(readlink -f $(which python3)))/python3-config $(dirname $(which python3))/python3-config &&
./wheels/install_deps_osx.sh
CIBW_REPAIR_WHEEL_COMMAND_LINUX: ./wheels/repair_wheel_linux.sh {dest_dir} {wheel}
CIBW_REPAIR_WHEEL_COMMAND_MACOS: ./wheels/repair_wheel_macos.sh {dest_dir} {wheel} {delocate_archs}
CIBW_BEFORE_TEST: >
python -m pip install -r test-requirements.txt &&
export OMP_NUM_THREADS=2
CIBW_TEST_COMMAND: >
python -c 'import so3g.smurf.reader; from spt3g import core' &&
python -m pytest {package}/test
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: '3.12'
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.23.3
- name: Build wheel
run: |
python -m cibuildwheel --output-dir wheelhouse
- uses: actions/upload-artifact@v4
with:
name: wheels_cp${{ matrix.python }}-${{ matrix.builder }}_${{ matrix.arch }}
path: ./wheelhouse/so3g*cp${{ matrix.python }}-${{ matrix.builder }}*${{ matrix.arch }}*.whl
upload_pypi:
needs: build_wheels
runs-on: ubuntu-latest
environment: pypi
permissions:
id-token: write
if: github.event_name == 'release' && github.event.action == 'published'
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
# unpacks all CIBW artifacts into dist/
pattern: wheels_*
path: dist
merge-multiple: true
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1