Skip to content

Build wheels - 1f8ddfa1e82c7c925fd754b68acbed97cd5129af #48

Build wheels - 1f8ddfa1e82c7c925fd754b68acbed97cd5129af

Build wheels - 1f8ddfa1e82c7c925fd754b68acbed97cd5129af #48

Workflow file for this run

name: Build wheels
run-name: Build wheels - ${{ github.sha }}
on:
push:
branches:
- 'master'
- 'release/**'
jobs:
build_windows_wheels:
strategy:
matrix:
py: [cp36, cp37, cp38, cp39, cp310, cp311, cp312]
arch:
- [AMD64, win_amd64, x64]
- [x86, win32, x86]
name: ${{ matrix.py }}-${{ matrix.arch[1] }}
runs-on: windows-2019
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download compiled OpenBLAS
run: |
curl -L -o OpenBLAS-0.3.27.zip https://github.com/OpenMathLib/OpenBLAS/releases/download/v0.3.27/OpenBLAS-0.3.27-${{ matrix.arch[2] }}.zip
7z x OpenBLAS-0.3.27.zip -o"OpenBLAS"
- name: Set up the configuration file
run: |
python setup_site.py openblas libopenblas ${{ github.workspace }}\OpenBLAS\lib ${{ github.workspace }}\OpenBLAS\include
- name: Build wheel ${{ matrix.py }}-${{ matrix.arch[1] }}
uses: pypa/cibuildwheel@v2.19.1
env:
CIBW_PLATFORM: windows
CIBW_BUILD: ${{ matrix.py }}-${{ matrix.arch[1] }}
CIBW_ARCHS_WINDOWS: ${{ matrix.arch[0] }}
CIBW_BEFORE_BUILD_WINDOWS: >
pip install delvewheel
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: >
delvewheel repair --add-path ${{ github.workspace }}\OpenBLAS\bin -w {dest_dir} -v {wheel}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: wheels_windows_${{ matrix.arch[0] }}
path: ./wheelhouse/*.whl
if-no-files-found: error
build_macos_wheels:
strategy:
matrix:
config:
[
{
py: cp36,
arch: [x86_64, macosx_x86_64, 10.9, macos-11]
},
{
py: cp37,
arch: [x86_64, macosx_x86_64, 10.9, macos-11]
},
{
py: cp38,
arch: [x86_64, macosx_x86_64, 10.9, macos-11]
},
{
py: cp39,
arch: [x86_64, macosx_x86_64, 10.9, macos-11]
},
{
py: cp310,
arch: [x86_64, macosx_x86_64, 10.9, macos-11]
},
{
py: cp311,
arch: [x86_64, macosx_x86_64, 10.9, macos-11]
},
{
py: cp312,
arch: [x86_64, macosx_x86_64, 10.9, macos-11]
},
{
py: cp38,
arch: [arm64, macosx_arm64, 11.0, macos-14]
},
{
py: cp39,
arch: [arm64, macosx_arm64, 11.0, macos-14]
},
{
py: cp310,
arch: [arm64, macosx_arm64, 11.0, macos-14]
},
{
py: cp311,
arch: [arm64, macosx_arm64, 11.0, macos-14]
},
{
py: cp312,
arch: [arm64, macosx_arm64, 11.0, macos-14]
}
]
name: ${{ matrix.config.py }}-${{ matrix.config.arch[1] }}
runs-on: ${{ matrix.config.arch[3] }}
if:
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download compiled OpenBLAS
uses: dawidd6/action-download-artifact@v6
with:
workflow: compile_openblas_macos.yml
workflow_conclusion: success
commit: ${{github.event.pull_request.head.sha}}
name: OpenBLAS_macos_${{ matrix.config.arch[0] }}
path: OpenBLAS
search_artifacts: true
- name: Install pipx # NOTE: required only for arm64
if: startsWith(matrix.config.arch[0], 'arm64')
run: |
brew install pipx
- name: Set up the configuration file
run: |
python3 setup_site.py openblas openblas ${{ github.workspace }}/OpenBLAS/lib ${{ github.workspace }}/OpenBLAS/include
- name: Build wheel ${{ matrix.config.py }}-${{ matrix.config.arch[1] }}
uses: pypa/cibuildwheel@v2.19.1
env:
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.config.arch[2] }}
CIBW_PLATFORM: macos
CIBW_BUILD: ${{ matrix.config.py }}-${{ matrix.config.arch[1] }}
CIBW_ARCHS_MACOS: ${{ matrix.config.arch[0] }}
CIBW_REPAIR_WHEEL_COMMAND_MACOS: >
DYLD_LIBRARY_PATH=${{ github.workspace }}/OpenBLAS/lib delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: wheels_macos_${{ matrix.config.arch[0] }}
path: ./wheelhouse/*.whl
if-no-files-found: error
build_linux_wheels:
strategy:
matrix:
py: [cp36, cp37, cp38, cp39, cp310, cp311, cp312]
arch:
- [x86_64, manylinux_x86_64, amd64]
- [aarch64, manylinux_aarch64, arm64]
name: ${{ matrix.py }}-${{ matrix.arch[1] }}
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download compiled OpenBLAS
uses: dawidd6/action-download-artifact@v6
with:
workflow: compile_openblas_linux.yml
workflow_conclusion: success
commit: ${{github.event.pull_request.head.sha}}
name: OpenBLAS_linux_${{ matrix.arch[0] }}
path: OpenBLAS
search_artifacts: true
- name: Set up the configuration file
run: | # NOTE: need to add '/host' because compilation is done in a Docker container
python setup_site.py openblas openblas /host${{ github.workspace }}/OpenBLAS/lib /host${{ github.workspace }}/OpenBLAS/include
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.0.0
with:
platforms: ${{ matrix.arch[2] }}
- name: Build wheel ${{ matrix.py }}-${{ matrix.arch[1] }}
uses: pypa/cibuildwheel@v2.19.1
env:
CIBW_PLATFORM: linux
CIBW_BUILD: ${{ matrix.py }}-${{ matrix.arch[1] }}
CIBW_ARCHS_LINUX: ${{ matrix.arch[0] }}
CIBW_REPAIR_WHEEL_COMMAND_LINUX: > # NOTE: need to add '/host' because compilation is done in a Docker container
LD_LIBRARY_PATH=/host${{ github.workspace }}/OpenBLAS/lib auditwheel repair -w {dest_dir} {wheel}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: wheels_linux_${{ matrix.arch[0] }}
path: ./wheelhouse/*.whl
if-no-files-found: error
build_source_distribution:
name: sdist
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up the configuration file
run: |
python setup_site.py openblas openblas ${{ github.workspace }}/OpenBLAS/lib ${{ github.workspace }}/OpenBLAS/include
- name: Build source distribution
run: |
pip install -U pip
pip install -U build
python -m build --sdist
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: sdist
path: ./dist/*.tar.gz
if-no-files-found: error