# Copyright (c) Microsoft Corporation. All rights reserved. # # This file is autogenerated by maturin v1.4.0 # To update, run # # maturin generate-ci --manifest-path bindings/python/Cargo.toml github # name: publish-python on: workflow_dispatch: permissions: contents: read jobs: linux: runs-on: ubuntu-latest strategy: matrix: target: [x86_64, x86, aarch64, armv7, s390x, ppc64le] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: '3.10' - uses: ./.github/actions/toolchains/rust - name: Build Python extension run: | cargo fetch --locked cargo clippy --all-targets --no-deps -- -Dwarnings cargo build --release --target ${{ matrix.target }} --frozen working-directory: bindings/python - name: Build wheels uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.43.0 with: target: ${{ matrix.target }} args: --release --out dist --manifest-path bindings/python/Cargo.toml --offline --strip sccache: 'true' manylinux: auto - name: Upload wheels uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: wheels-linux-${{ matrix.target }} path: dist windows: runs-on: windows-latest strategy: matrix: target: [x64, x86] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: '3.10' architecture: ${{ matrix.target }} - uses: ./.github/actions/toolchains/rust - name: Build Python extension run: | cargo fetch --locked cargo clippy --all-targets --no-deps -- -Dwarnings cargo build --release --target ${{ matrix.host.target }} --frozen working-directory: bindings/python - name: Build wheels uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.43.0 with: target: ${{ matrix.target }} args: --release --out dist --manifest-path bindings/python/Cargo.toml --frozen --strip sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: wheels-windows-${{ matrix.target }} path: dist macos: runs-on: macos-latest strategy: matrix: target: [x86_64, aarch64, universal2-apple-darwin] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: '3.10' - uses: ./.github/actions/toolchains/rust - name: Build Python extension run: | cargo fetch --locked cargo clippy --all-targets --no-deps -- -Dwarnings cargo build --release --target ${{ matrix.host.target }} --frozen working-directory: bindings/python - name: Build wheels uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.43.0 with: target: ${{ matrix.target }} args: --release --out dist --manifest-path bindings/python/Cargo.toml --offline --strip sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: wheels-macos-${{ matrix.host.target }} path: dist release: name: Release runs-on: ubuntu-latest # Commented out for initial release. # if: "startsWith(github.ref, 'refs/tags/')" needs: [linux, windows, macos] steps: - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: pattern: wheels-* merge-multiple: true path: wheels - name: Publish to PyPI uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.43.0 env: MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} with: command: upload args: --non-interactive --skip-existing *