Skip to content

update maturin config (#56) #134

update maturin config (#56)

update maturin config (#56) #134

Workflow file for this run

name: pypi
on:
workflow_dispatch:
pull_request:
branches:
- main
push:
branches:
- main
tags:
- v*
env:
PACKAGE_NAME: clarabel
PYTHON_VERSION: "3.7" # to build abi3 wheels
PYPI_TARGET: pypi # use "testpypi" for testing, "pypi" otherwise
# NB: uncomment "if" lines below to skip compilation except on version tagging
jobs:
linux:
runs-on: ubuntu-latest
strategy:
matrix:
target: [x86_64, i686, aarch64]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
command: build
manylinux: auto
args: -v --release --out dist -i python${{ env.PYTHON_VERSION }} --features "python"
- name: Install and test built wheel
if: matrix.target == 'x86_64'
run: |
python -m pip install dist/${{ env.PACKAGE_NAME }}-*.whl --force-reinstall
python -c "import clarabel"
python examples/python/example_qp.py
python examples/python/example_sdp.py
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
macos:
runs-on: macos-latest
# if: "startsWith(github.ref, 'refs/tags/v')"
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
architecture: x64
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
default: true
- name: Build wheels - x86_64
uses: PyO3/maturin-action@v1
with:
target: x86_64
command: build
args: --release -i python${{ env.PYTHON_VERSION }} --out dist --features "python"
- name: Install and test built wheel - x86_64
run: |
pip install --upgrade pip
pip install dist/${{ env.PACKAGE_NAME }}-*.whl --force-reinstall
python -c "import clarabel"
python examples/python/example_qp.py
python examples/python/example_sdp.py
- name: Build wheels - universal2
uses: PyO3/maturin-action@v1
with:
command: build
args: --release -i python${{ env.PYTHON_VERSION }} --universal2 --out dist --features "python"
- name: Install and test built wheel - universal2
run: |
pip install --upgrade pip
pip install dist/${{ env.PACKAGE_NAME }}-*universal2.whl --force-reinstall
python -c "import clarabel"
python examples/python/example_qp.py
python examples/python/example_sdp.py
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
windows:
runs-on: windows-latest
# if: "startsWith(github.ref, 'refs/tags/v')"
strategy:
matrix:
target: [x64, x86]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
architecture: ${{ matrix.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
command: build
target: ${{ matrix.target }}
args: --release --out dist -i python${{ env.PYTHON_VERSION }} --features "python"
- name: Install and test built wheel
shell: bash
run: |
python -m pip install dist/${{ env.PACKAGE_NAME }}-*.whl --force-reinstall
python -c "import clarabel"
python examples/python/example_qp.py
python examples/python/example_sdp.py
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
release:
name: Release
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/v')"
needs:
- macos
- windows
- linux
steps:
- uses: actions/download-artifact@v3
with:
name: wheels
- uses: actions/setup-python@v2
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Publish to PyPi
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
pip install --upgrade twine
twine upload --skip-existing --repository ${{ env.PYPI_TARGET }} *