Build wheels #18
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build wheels | |
on: | |
workflow_dispatch: | |
push: | |
tags: | |
- v* | |
schedule: | |
- cron: '6 6 6/16 * *' # On the 6th and 22nd of each month at 6:06 | |
jobs: | |
build_wheels: | |
name: Build wheels on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04, macos-12, macos-14, windows-2019] | |
# MacOS<=13 are Intel, while MacOS 14 is Apple Silicon | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: fortran-lang/setup-fortran@v1 | |
id: setup-fortran | |
with: | |
compiler: 'gcc' | |
version: '13' | |
- name: Build wheels | |
if: matrix.os == 'ubuntu-20.04' | |
uses: pypa/[email protected] | |
env: | |
CIBW_SKIP: "pp* *i686* *musllinux*" | |
# As of Sept 2024, Python 3.13 is troublesome because of lack of Pandas for Python 3.13. | |
- name: Build wheels | |
if: matrix.os == 'macos-12' | |
uses: pypa/[email protected] | |
env: | |
CIBW_SKIP: "pp* cp313*" | |
CIBW_ENVIRONMENT: MACOSX_DEPLOYMENT_TARGET=12.0 | |
- name: Build wheels | |
if: matrix.os == 'macos-14' | |
uses: pypa/[email protected] | |
env: | |
CIBW_SKIP: "pp* cp313*" | |
CIBW_ENVIRONMENT: MACOSX_DEPLOYMENT_TARGET=14.0 | |
- name: Build wheels | |
if: matrix.os == 'windows-2019' | |
uses: pypa/[email protected] | |
env: | |
CIBW_SKIP: "pp* cp313* *win32*" | |
CIBW_BEFORE_BUILD_WINDOWS: pip install delvewheel | |
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel show {wheel} && delvewheel repair -w {dest_dir} {wheel} --no-mangle-all" | |
# Package the DLL dependencies in the wheel for windows (done by default for the other platforms). | |
# delvewheel cannot mangle the libraries, stripping does not work. | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-${{ matrix.os }} | |
path: ./wheelhouse/*.whl |