Skip to content

Work on fixing wheels. #836

Work on fixing wheels.

Work on fixing wheels. #836

Workflow file for this run

name: Test Binary Wheels
# on: workflow_dispatch
# FIXME: Remove these lines once this workflow merged
# to main branch.
on:
push:
branches:
- master
pull_request:
branches:
- master
- toast3
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build_wheels:
name: Build wheel for cp${{ matrix.python }}-${{ matrix.platform_id }}-${{ matrix.manylinux_image }}
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 manylinux2014
- os: ubuntu-latest
python: 38
platform_id: manylinux_x86_64
manylinux_image: manylinux2014
- os: ubuntu-latest
python: 39
platform_id: manylinux_x86_64
manylinux_image: manylinux2014
- os: ubuntu-latest
python: 310
platform_id: manylinux_x86_64
manylinux_image: manylinux2014
- os: ubuntu-latest
python: 311
platform_id: manylinux_x86_64
manylinux_image: manylinux2014
# MacOS x86_64.
- os: macos-12
python: 39
platform_id: macosx_x86_64
- os: macos-12
python: 310
platform_id: macosx_x86_64
- os: macos-12
python: 311
platform_id: macosx_x86_64
# MacOS arm64 - Re-enable after github CI supports M1 runners:
# https://github.com/actions/virtual-environments/issues/2187
#
# - os: macos-latest
# python: 39
# platform_id: macosx_arm64
# - os: macos-latest
# python: 310
# platform_id: macosx_arm64
# - os: macos-latest
# python: 311
# platform_id: macosx_arm64
env:
CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.platform_id }}
CIBW_ARCHS_MACOS: "x86_64 arm64"
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux_image }}
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.manylinux_image }}
CIBW_BUILD_VERBOSITY: 3
CIBW_ENVIRONMENT_LINUX: >
TOAST_BUILD_CMAKE_VERBOSE_MAKEFILE=ON
TOAST_BUILD_TOAST_STATIC_DEPS=ON
TOAST_BUILD_BLAS_LIBRARIES='-L/usr/local/lib -lopenblas -fopenmp -lm -lgfortran'
TOAST_BUILD_LAPACK_LIBRARIES='-L/usr/local/lib -lopenblas -fopenmp -lm -lgfortran'
TOAST_BUILD_FFTW_ROOT=/usr/local
TOAST_BUILD_AATM_ROOT=/usr/local
TOAST_BUILD_SUITESPARSE_INCLUDE_DIR_HINTS=/usr/local/include
TOAST_BUILD_SUITESPARSE_LIBRARY_DIR_HINTS=/usr/local/lib
CIBW_ENVIRONMENT_MACOS: >
TOAST_BUILD_CMAKE_C_COMPILER=clang
TOAST_BUILD_CMAKE_CXX_COMPILER=clang++
TOAST_BUILD_CMAKE_C_FLAGS='-O3 -g -fPIC'
TOAST_BUILD_CMAKE_CXX_FLAGS='-O3 -g -fPIC -std=c++11 -stdlib=libc++'
TOAST_BUILD_CMAKE_VERBOSE_MAKEFILE=ON
TOAST_BUILD_DISABLE_OPENMP=1
TOAST_BUILD_BLAS_LIBRARIES='/usr/local/lib/libopenblas.dylib'
TOAST_BUILD_LAPACK_LIBRARIES='/usr/local/lib/libopenblas.dylib'
TOAST_BUILD_FFTW_ROOT=/usr/local
TOAST_BUILD_AATM_ROOT=/usr/local
TOAST_BUILD_SUITESPARSE_INCLUDE_DIR_HINTS=/usr/local/include
TOAST_BUILD_SUITESPARSE_LIBRARY_DIR_HINTS=/usr/local/lib
CIBW_BEFORE_BUILD_LINUX: ./packaging/wheels/install_deps_linux.sh
CIBW_BEFORE_BUILD_MACOS: ./packaging/wheels/install_deps_osx.sh ${{ matrix.platform_id }}
CIBW_BEFORE_TEST: export OMP_NUM_THREADS=2
CIBW_TEST_COMMAND_LINUX: >
tst=$(dirname $(python -c 'import toast; print(toast.__file__)')) &&
echo "Toast test install at ${tst}" &&
ldd ${tst}/_libtoast.cpython* &&
source {project}/packaging/wheels/cibw_run_tests.sh
CIBW_TEST_COMMAND_MACOS: >
tst=$(dirname $(python -c 'import toast; print(toast.__file__)')) &&
echo "Toast test install at ${tst}" &&
otool -L ${tst}/_libtoast.cpython* &&
source {project}/packaging/wheels/cibw_run_tests.sh
CIBW_TEST_SKIP: "*-macosx_arm64 *-macosx_universal2:arm64"
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: '3.10'
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.18.0
- name: Build wheel
run: |
python -m cibuildwheel --output-dir wheelhouse
- uses: actions/upload-artifact@v4
with:
name: wheels_${{ matrix.python }}-${{ matrix.platform_id }}
path: ./wheelhouse/toast*.whl