Skip to content

build

build #7

Workflow file for this run

name: build
on:
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
type: choice
options:
- info
- warning
- debug
env:
# CIBW_BEFORE_BUILD: pip install setuptools oldest-supported-numpy
CIBW_BUILD_VERBOSITY: 3
# CIBW_TEST_REQUIRES: pytest
# CIBW_TEST_COMMAND: python -c "import sys, numexpr_mod; sys.exit(0 if numexpr_mod.test().wasSuccessful() else 1)"
CIBW_TEST_SKIP: "*macosx*arm64*"
CIBW_SKIP: "*musllinux*"
jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }} for ${{ matrix.arch }} - ${{ matrix.p_ver }}
runs-on: ${{ matrix.os }}
env:
CIBW_BUILD: ${{ matrix.cibw_build }}
CIBW_ARCHS_LINUX: ${{ matrix.arch }}
CIBW_ARCHS_MACOS: ${{ matrix.arch }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
arch: [auto64]
cibw_build: ["cp3{7,8,9,10,11}-*"]
p_ver: ["3.7-3.11"]
include:
- arch: arm64
os: macos-latest
cibw_build: "cp3{7,8,9,10,11}-*"
p_ver: "3.7-3.11"
- arch: aarch64
os: ubuntu-latest
cibw_build: "cp37*"
p_ver: "3.7"
- arch: aarch64
os: ubuntu-latest
cibw_build: "cp38*"
p_ver: "3.8"
- arch: aarch64
os: ubuntu-latest
cibw_build: "cp39*"
p_ver: "3.9"
- arch: aarch64
os: ubuntu-latest
cibw_build: "cp310*"
p_ver: "3.10"
- arch: aarch64
os: ubuntu-latest
cibw_build: "cp311*"
p_ver: "3.11"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
pip install build twine
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel
- uses: docker/setup-qemu-action@v3
if: ${{ matrix.arch == 'aarch64' }}
name: Set up QEMU
- name: Build wheels for Python
run: |
python -m cibuildwheel --output-dir dist
- name: Make sdist
if: ${{ matrix.os == 'windows-latest' }}
run: |
python -m pip install build
python -m build --sdist --outdir dist .
- name: Publish wheels to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_PASSWORD }}
run: |
twine upload ./dist/*
# - name: Publish sdist to PyPi
# if: ${{ matrix.os == 'windows-latest' }}
# env:
# TWINE_USERNAME: __token__
# TWINE_PASSWORD: ${{ secrets.TEST_PYPI_PASSWORD }}
# run: |
# twine upload --repository testpypi dist/*.tar.gz