Skip to content

Workflow file for this run

name: Prepare wheels and push release to Pypi
on:
# workflow_dispatch:
release:
types: [published]
#! https://github.com/actions/setup-python/issues/825 (why not macos-latest?)
jobs:
build-mac:
name: Build for Mac
if: '!github.event.prerelease'
runs-on: macos-13
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v5
with:
python-version: '3.10'
architecture: x64
- uses: dtolnay/rust-toolchain@stable
- name: Build wheels for x86_64
uses: PyO3/maturin-action@v1
with:
target: x86_64
command: build
args: --release --out dist -i 3.8 3.9 '3.10' '3.11' '3.12'
- name: Install built x86_64 wheel
run: |
pip install semsimian --no-index --find-links dist --force-reinstall
- name: Build wheels for universal2
uses: PyO3/maturin-action@v1
with:
command: build
args: --release --universal2 --out dist -i 3.8 3.9 '3.10' '3.11' '3.12'
- name: Install built universal2 wheel
run: |
pip install semsimian --no-index --find-links dist --force-reinstall
- name: Upload wheels for Mac
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
build-linux:
name: Build for Linux
if: '!github.event.prerelease'
runs-on: ubuntu-latest
strategy:
matrix:
target: [x86_64, x86_64-unknown-linux-musl, aarch64-unknown-linux-gnu, aarch64-unknown-linux-musl]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v5
with:
python-version: '3.10'
architecture: x64
- name: Build wheels for Linux
uses: PyO3/maturin-action@v1
with:
rust-toolchain: stable
target: ${{ matrix.target }}
manylinux: auto
args: --release --out dist -i 3.8 3.9 '3.10' '3.11' '3.12'
- name: Install built wheel
if: matrix.target == 'x86_64'
run: |
pip install semsimian --no-index --find-links dist --force-reinstall
- name: Run cargo test
run: cargo test --features ci
- name: Upload wheels for Linux
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
build-windows:
name: Build for Windows
if: '!github.event.prerelease'
runs-on: windows-latest
strategy:
matrix:
target: [x86_64]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v5
with:
python-version: '3.10'
architecture: x64
- name: Build wheels for Windows
uses: PyO3/maturin-action@v1
with:
rust-toolchain: stable
target: ${{ matrix.target }}
args: --release --out dist -i 3.8 3.9 '3.10' '3.11' '3.12'
- name: Install built wheel
if: matrix.target == 'x86_64'
run: |
pip install semsimian --no-index --find-links dist --force-reinstall
- name: Run cargo test
run: cargo test --features ci
- name: Upload wheels for Windows
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
release:
name: Release
if: '!github.event.prerelease'
runs-on: ubuntu-latest
needs: [ build-mac, build-linux, build-windows ]
steps:
- run: echo 'Releasing to PyPi.'
- uses: actions/download-artifact@v3
with:
name: wheels
- name: Publish to PyPI
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_PASSWORD }}
uses: PyO3/maturin-action@v1
with:
command: upload
args: --skip-existing *