|
- name: release-python
- # on: [push, pull_request]
- on:
- push:
- tags:
- - '*'
-
- jobs:
- build_sdist:
- name: Build SDist
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: true
-
- - uses: actions/setup-python@v4
- with:
- python-version: '3.x'
-
- - name: Install deps
- run: python -m pip install twine build
-
- - name: Build SDist
- run: python -m build -s
-
- - name: Check metadata
- run: twine check dist/*
-
- - uses: actions/upload-artifact@v3
- with:
- path: dist/*.tar.gz
-
- build_wheels:
- name: ${{ matrix.arch }} ${{ matrix.build }} on ${{ matrix.os }}
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- include:
- - { os: ubuntu-20.04, arch: x86_64, build: 'cp*-manylinux*' }
- - { os: ubuntu-20.04, arch: x86_64, build: 'cp*-musllinux*' }
- - { os: ubuntu-20.04, arch: x86_64, build: 'pp*' }
- - { os: ubuntu-20.04, arch: i686, build: 'cp*-manylinux*' }
- - { os: ubuntu-20.04, arch: i686, build: 'cp*-musllinux*' }
- - { os: ubuntu-20.04, arch: i686, build: 'pp*' }
- - { os: windows-2019, arch: x86, build: 'cp*' }
- - { os: windows-2019, arch: AMD64, build: 'cp*' }
- - { os: windows-2019, arch: AMD64, build: 'pp*' }
- - { os: windows-2019, arch: ARM64, build: 'cp*' }
- - { os: macos-latest, arch: x86_64, build: 'cp*' }
- - { os: macos-latest, arch: x86_64, build: 'pp*' }
- - { os: macos-latest, arch: arm64, build: 'cp*' }
- - { os: macos-latest, arch: universal2, build: 'cp*' }
-
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: true
-
- - uses: actions/setup-python@v4
- with:
- python-version: '3.x'
-
- - name: brew uninstall libomp
- if: matrix.os == 'macos-latest'
- run: |
- brew uninstall --ignore-dependencies libomp
-
- - name: Build wheels
- uses: pypa/cibuildwheel@v2.15.0
- env:
- CIBW_ARCHS_MACOS: ${{ matrix.arch }}
- CIBW_ARCHS_LINUX: ${{ matrix.arch }}
- CIBW_ARCHS_WINDOWS: ${{ matrix.arch }}
- CIBW_BUILD: ${{ matrix.build }}
- CIBW_BUILD_VERBOSITY: 1
- CIBW_ENVIRONMENT: CMAKE_BUILD_PARALLEL_LEVEL=2
-
- - name: Show files
- run: ls -lh wheelhouse
- shell: bash
-
- - name: Verify clean directory
- run: git diff --exit-code
- shell: bash
-
- - name: Upload wheels
- uses: actions/upload-artifact@v3
- with:
- path: wheelhouse/*.whl
-
- build_wheels_qemu:
- name: ${{ matrix.arch }} ${{ matrix.build }}
- runs-on: ubuntu-20.04
-
- strategy:
- fail-fast: false
- matrix:
- arch: [aarch64, ppc64le, s390x]
- build: ['cp36-*', 'cp37-*', 'cp38-*', 'cp39-*', 'cp310-*', 'cp311-*']
- include:
- - arch: aarch64
- build: 'pp37-*'
- - arch: aarch64
- build: 'pp38-*'
- - arch: aarch64
- build: 'pp39-*'
-
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: true
-
- - uses: actions/setup-python@v4
- with:
- python-version: '3.x'
-
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v2
- with:
- platforms: all
-
- - name: Build wheels
- uses: pypa/cibuildwheel@v2.15.0
- env:
- CIBW_ARCHS_LINUX: ${{ matrix.arch }}
- CIBW_BUILD: ${{ matrix.build }}
- CIBW_BUILD_VERBOSITY: 1
- CIBW_ENVIRONMENT: CMAKE_BUILD_PARALLEL_LEVEL=2
-
- - name: Show files
- run: ls -lh wheelhouse
- shell: bash
-
- - name: Verify clean directory
- run: git diff --exit-code
- shell: bash
-
- - name: Upload wheels
- uses: actions/upload-artifact@v3
- with:
- path: wheelhouse/*.whl
-
- upload_all:
- permissions:
- contents: none
- name: Upload
- needs: [build_wheels, build_wheels_qemu, build_sdist]
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/setup-python@v4
- with:
- python-version: '3.x'
-
- - uses: actions/download-artifact@v3
- with:
- name: artifact
- path: dist
-
- - uses: pypa/gh-action-pypi-publish@release/v1
- with:
- user: __token__
- password: ${{ secrets.PYPI_API_TOKEN }}
|