Skip to content

Release 0.15.12 + generate Python 3.12 wheel #269

Release 0.15.12 + generate Python 3.12 wheel

Release 0.15.12 + generate Python 3.12 wheel #269

Workflow file for this run

name: Build Wheel
on:
push:
branches:
- main
pull_request:
branches:
- main
create:
tags:
- '*'
jobs:
osx:
runs-on: macos-11
strategy:
fail-fast: false
matrix:
PYTHON_VERSION: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
ARCH: ["x86_64", "arm64"]
env:
PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }}
CXX: clang++
CC: clang
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.PYTHON_VERSION }}
- name: Setup xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '13.1.0'
- name: Build wheel
run: |
set -eux
pip install delocate
export SDKROOT=$(xcrun --sdk macosx --show-sdk-path)
if [ ${{ matrix.ARCH }} == "arm64" ]; then
export _PYTHON_HOST_PLATFORM=macosx-11.0-arm64
export ARCHFLAGS="-arch arm64"
export LIBSODIUM_CONFIG_COMMAND="./configure --host=arm64-apple-darwin"
export OPENSSL_CONFIG_COMMAND="perl Configure darwin64-arm64-cc"
export DCMAKE_OSX_ARCHITECTURES="arm64"
fi
python -m pip wheel . --verbose -w wheelhouse_dirty
delocate-wheel -w wheelhouse --require-archs=${{ matrix.arch }} -v wheelhouse_dirty/xeus_python-*.whl
- name: List wheels
run: ls wheelhouse
- uses: actions/upload-artifact@v3
with:
name: wheelhouse
path: wheelhouse/xeus_python-*.whl
if-no-files-found: error
linux:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
PYTHON_VERSION: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
container:
image: "quay.io/pypa/manylinux_2_24_x86_64"
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build wheel
run: |
set -eux
pyver=`echo '${{ matrix.PYTHON_VERSION }}' | tr -d '.'`
pypath=`echo /opt/python/cp${pyver}-cp${pyver}*/bin`
export PATH=$pypath:$PATH
python -m pip wheel --verbose . -w wheelhouse_dirty
auditwheel repair wheelhouse_dirty/xeus_python-*.whl --plat manylinux_2_24_x86_64 -w wheelhouse
- name: List wheels
run: ls wheelhouse
- name: Get wheel name
run: echo "WHEEL=$(find wheelhouse -type f -iname 'xeus_python-*.whl')" >> $GITHUB_ENV
- uses: actions/upload-artifact@v3
with:
name: wheelhouse
path: ${{ env.WHEEL }}
windows:
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
PYTHON_VERSION: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.PYTHON_VERSION }}
- name: Setup NASM
uses: ilammy/setup-nasm@v1
- name: Build wheel
shell: cmd
run: |
call "c:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
pip wheel --verbose . -w wheelhouse
- name: List wheels
run: ls wheelhouse
- uses: actions/upload-artifact@v3
with:
name: wheelhouse
path: wheelhouse/xeus_python-*.whl
if-no-files-found: error
test-wheels:
runs-on: ${{ matrix.os }}-latest
needs: [linux, osx, windows]
strategy:
fail-fast: false
matrix:
os: [ubuntu, macos, windows]
PYTHON_VERSION: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
include:
- PYTHON_VERSION: "3.7"
os: ubuntu
whl: 'xeus_python-*-cp37*linux*.whl'
- PYTHON_VERSION: "3.8"
os: ubuntu
whl: 'xeus_python-*-cp38*linux*.whl'
- PYTHON_VERSION: "3.9"
os: ubuntu
whl: 'xeus_python-*-cp39*linux*.whl'
- PYTHON_VERSION: "3.10"
os: ubuntu
whl: 'xeus_python-*-cp310*linux*.whl'
- PYTHON_VERSION: "3.11"
os: ubuntu
whl: 'xeus_python-*-cp311*linux*.whl'
- PYTHON_VERSION: "3.12"
os: ubuntu
whl: 'xeus_python-*-cp312*linux*.whl'
- PYTHON_VERSION: "3.7"
os: macos
whl: 'xeus_python-*-cp37*macos*x86_64.whl'
- PYTHON_VERSION: "3.8"
os: macos
whl: 'xeus_python-*-cp38*macos*x86_64.whl'
- PYTHON_VERSION: "3.9"
os: macos
whl: 'xeus_python-*-cp39*macos*x86_64.whl'
- PYTHON_VERSION: "3.10"
os: macos
whl: 'xeus_python-*-cp310*macos*x86_64.whl'
- PYTHON_VERSION: "3.11"
os: macos
whl: 'xeus_python-*-cp311*macos*x86_64.whl'
- PYTHON_VERSION: "3.12"
os: macos
whl: 'xeus_python-*-cp312*macos*x86_64.whl'
- PYTHON_VERSION: "3.7"
os: windows
whl: 'xeus_python-*-cp37*win*.whl'
- PYTHON_VERSION: "3.8"
os: windows
whl: 'xeus_python-*-cp38*win*.whl'
- PYTHON_VERSION: "3.9"
os: windows
whl: 'xeus_python-*-cp39*win*.whl'
- PYTHON_VERSION: "3.10"
os: windows
whl: 'xeus_python-*-cp310*win*.whl'
- PYTHON_VERSION: "3.11"
os: windows
whl: 'xeus_python-*-cp311*win*.whl'
- PYTHON_VERSION: "3.12"
os: windows
whl: 'xeus_python-*-cp312*win*.whl'
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: wheelhouse
path: ./wheelhouse
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.PYTHON_VERSION }}
- name: Install deps
run: python -m pip install pytest nbval
- name: List wheels
run: ls wheelhouse
- name: Install wheel
shell: bash
run: |
WHEEL=$(find . -type f -iname ${{ matrix.whl }})
python -m pip install -vv ${WHEEL}
working-directory: wheelhouse
- name: Run test
run: pytest test -vv
publish-wheels:
runs-on: ubuntu-latest
needs: [test-wheels]
if: ${{ github.event_name == 'create' }}
strategy:
fail-fast: false
steps:
- uses: actions/download-artifact@v3
with:
name: wheelhouse
path: ./wheelhouse
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install deps
run: python -m pip install twine
- name: Publish wheels
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: twine upload wheelhouse/xeus_python-*.whl