Release 0.15.12 + generate Python 3.12 wheel #276
Workflow file for this run
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 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/manylinux2014_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 manylinux2014_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 |