diff options
Diffstat (limited to '.github/workflows/release.yml')
-rw-r--r-- | .github/workflows/release.yml | 98 |
1 files changed, 82 insertions, 16 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 59062ae..5821407 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,34 +4,103 @@ on: push: tags: - '*.*.*' + workflow_dispatch: jobs: - build: - name: Build wheels on ${{ matrix.os }} - runs-on: ${{ matrix.os }}-latest + name: Build on ${{ matrix.platform || matrix.os }} (${{ matrix.target }} - ${{ matrix.manylinux || 'auto' }}) strategy: + fail-fast: false matrix: - os: [ ubuntu, windows, macos ] + os: [ubuntu, macos, windows] + target: [x86_64, aarch64] + manylinux: [auto] + include: + - os: ubuntu + platform: linux + - os: windows + ls: dir + interpreter: 3.7 3.8 3.9 3.10 3.11 3.12 pypy3.8 pypy3.9 pypy3.10 + - os: windows + ls: dir + target: aarch64 + interpreter: 3.11 3.12 + - os: macos + target: aarch64 + interpreter: 3.7 3.8 3.9 3.10 3.11 3.12 pypy3.8 pypy3.9 pypy3.10 + - os: ubuntu + platform: linux + target: aarch64 + # mimalloc not supported on manylinux2014 cross-compile container + extra-build-args: --no-default-features + # musllinux + - os: ubuntu + platform: linux + target: x86_64 + manylinux: musllinux_1_1 + - os: ubuntu + platform: linux + target: aarch64 + manylinux: musllinux_1_1 + - os: ubuntu + platform: linux + target: ppc64le + interpreter: 3.7 3.8 3.9 3.10 3.11 3.12 + # mimalloc not supported on manylinux2014 cross-compile container + extra-build-args: --no-default-features + - os: ubuntu + platform: linux + target: s390x + interpreter: 3.7 3.8 3.9 3.10 3.11 3.12 + # mimalloc not supported on manylinux2014 cross-compile container + extra-build-args: --no-default-features + runs-on: ${{ matrix.os }}-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - name: Build wheels - uses: pypa/cibuildwheel@v2.10.1 - env: - CIBW_PROJECT_REQUIRES_PYTHON: ">=3.7" + - name: set up python + uses: actions/setup-python@v4 with: - package-dir: . - output-dir: dist + python-version: '3.11' + architecture: ${{ matrix.python-architecture || 'x64' }} + + - name: build wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.target }} + manylinux: ${{ matrix.manylinux || 'auto' }} + container: ${{ matrix.container }} + args: --release --out dist --interpreter ${{ matrix.interpreter || '3.7 3.8 3.9 3.10 3.11 3.12 pypy3.7 pypy3.8 pypy3.9 pypy3.10' }} ${{ matrix.extra-build-args }} + rust-toolchain: stable + docker-options: -e CI + + - run: ${{ matrix.ls || 'ls -lh' }} dist/ - uses: actions/upload-artifact@v3 with: name: dist - path: ./dist/* + path: dist + + build_sdist: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Build sdist + uses: PyO3/maturin-action@v1 + with: + command: sdist + args: --out dist + - name: Upload sdist + uses: actions/upload-artifact@v3 + with: + name: dist + path: dist + Release: - needs: [ build ] + needs: [ build, build_sdist ] + if: success() && startsWith(github.ref, 'refs/tags/') runs-on: ubuntu-latest steps: @@ -51,9 +120,6 @@ jobs: - name: Update PATH run: echo "$HOME/.local/bin" >> $GITHUB_PATH - - name: Build sdist - run: poetry build --format sdist - - name: Check distributions run: | ls -la dist |