Skip to content

Commit

Permalink
CI: redo building wheels for pypi
Browse files Browse the repository at this point in the history
  • Loading branch information
matt-codecov committed Aug 20, 2024
1 parent ae3fc7e commit 638b8f9
Showing 1 changed file with 59 additions and 16 deletions.
75 changes: 59 additions & 16 deletions .github/workflows/build_for_pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,75 @@ on:

jobs:
build_for_pypi:
runs-on: ubuntu-latest
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
permissions:
id-token: write # This is required for requesting the JWT
contents: read # This is required for actions/checkout
strategy:
matrix:
include:
- { os: windows-latest, cibw_arch: AMD64 }
- { os: ubuntu-latest, cibw_arch: x86_64 }
- { os: ubuntu-latest, cibw_arch: aarch64, qemu_arch: arm64 }
- { os: macos-latest, cibw_arch: arm64 }
- { os: macos-latest, cibw_arch: x86_64 }

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install dependencies
run: |
pip install -r requirements.txt
python setup.py build
python setup.py develop
- name: Build distributions for different platforms
run: |
pip install wheel
python setup.py sdist bdist_wheel --plat-name=manylinux2014_x86_64
python setup.py bdist_wheel --plat-name=macosx-12.6-x86_64
python setup.py bdist_wheel --plat-name=win_amd64
- name: Publish package to PyPi
if: inputs.publish == true
uses: pypa/gh-action-pypi-publish@release/v1

- name: Set up QEMU
if: matrix.qemu_arch != ''
uses: docker/setup-qemu-action@v3
with:
platforms: matrix.qemu_arch

- name: Build wheels
uses: pypa/cibuildwheel@v2.20.0
env:
CIBW_ARCHS: ${{matrix.cibw_arch}}

- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl

build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
permissions:
contents: read # This is required for actions/checkout
steps:
- uses: actions/checkout@v4

- name: Build sdist
run: pipx run build --sdist

- uses: actions/upload-artifact@v4
with:
name: cibw-sdist
path: dist/*.tar.gz

upload_pypi:
needs: [build_for_pypi, build_sdist]
runs-on: ubuntu-latest
permissions:
id-token: write # This is required for requesting the JWT
contents: read # This is required for actions/checkout
steps:
- uses: actions/download-artifact@v4
with:
# unpacks all CIBW artifacts into dist/
pattern: cibw-*
path: dist
merge-multiple: true

- name: Publish package to PyPI
if: inputs.publish == true
uses: pypa/gh-action-pypi-publish@release/v1

0 comments on commit 638b8f9

Please sign in to comment.