py-release #2
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: py-release | |
on: | |
workflow_dispatch: | |
inputs: | |
# Create the sdist and build the wheels, but do not publish to PyPI / GitHub. | |
dry-run: | |
description: Dry run | |
type: boolean | |
default: false | |
permissions: | |
contents: write | |
pages: write | |
id-token: write | |
concurrency: | |
group: "pages" | |
cancel-in-progress: false | |
jobs: | |
create-sdist: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
package: [polars, polars-lts-cpu, polars-u64-idx] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Create source distribution | |
uses: PyO3/maturin-action@v1 | |
with: | |
command: sdist | |
args: > | |
--manifest-path mistralrs-pyo3/Cargo.toml | |
--out dist | |
- name: Test sdist | |
run: | | |
pip install --force-reinstall --verbose dist/*.tar.gz | |
python -c 'import mistralrs' | |
- name: Upload sdist | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sdist-mistralrs | |
path: dist/*.tar.gz | |
build-wheels: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
package: [polars, polars-lts-cpu, polars-u64-idx] | |
os: [ubuntu-latest, macos-latest, windows-32gb-ram] | |
architecture: [x86-64, aarch64] | |
exclude: | |
- os: windows-32gb-ram | |
architecture: aarch64 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Build wheel | |
uses: PyO3/maturin-action@v1 | |
with: | |
command: build | |
target: ${{ steps.target.outputs.target }} | |
args: > | |
--release | |
--manifest-path mistralrs-pyo3/Cargo.toml | |
--out dist | |
manylinux: ${{ matrix.architecture == 'aarch64' && '2_24' || 'auto' }} | |
- name: Test sdist | |
run: | | |
pip install --force-reinstall --verbose dist/*.tar.gz | |
python -c 'import mistralrs' | |
- name: Upload wheel | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheel-${{ matrix.package }}-${{ matrix.os }}-${{ matrix.architecture }} | |
path: dist/*.whl | |
publish-to-pypi: | |
needs: [create-sdist, build-wheels] | |
environment: | |
name: release-python | |
url: https://pypi.org/project/mistralrs | |
runs-on: ubuntu-latest | |
permissions: | |
id-token: write | |
steps: | |
- name: Download sdists and wheels | |
uses: actions/download-artifact@v4 | |
with: | |
path: dist | |
merge-multiple: true | |
- name: Publish to PyPI | |
if: inputs.dry-run == false | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
verbose: true |