| | name: release-python |
| | |
| | on: |
| | push: |
| | tags: |
| | - '*' |
| |
|
| | jobs: |
| | build_sdist: |
| | name: Build SDist |
| | runs-on: ubuntu-latest |
| | steps: |
| | - uses: actions/checkout@v4 |
| | 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@v4 |
| | 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-*', 'cp312-*'] |
| | include: |
| | - arch: aarch64 |
| | build: 'pp37-*' |
| | - arch: aarch64 |
| | build: 'pp38-*' |
| | - arch: aarch64 |
| | build: 'pp39-*' |
| | - arch: aarch64 |
| | build: 'pp310-*' |
| |
|
| | steps: |
| | - uses: actions/checkout@v4 |
| | 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 }} |
| |
|