Build and upload to PyPI #28
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and upload to PyPI | |
# Based on: https://github.com/pypa/cibuildwheel/blob/main/examples/github-deploy.yml | |
on: | |
push | |
jobs: | |
build_wheels: | |
name: Build wheels on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
# macos-13 is an intel runner, macos-14 is apple silicon | |
os: [ubuntu-latest, windows-latest, macos-13, macos-14] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # this is needed to get the tags | |
# Used to host cibuildwheel | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9' | |
# - name: Install setuptools_scm and update seuptools | |
# run: pip install setuptools_scm setuptools; pip install --upgrade setuptools | |
# | |
# - name: Get package version from setuptools_scm | |
# run: python -m setuptools_scm | |
- name: Build wheels | |
uses: pypa/[email protected] | |
- name: check git status | |
run: git status | |
- 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 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # this is needed to get the tags | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9' | |
- name: Install setuptools_scm and update seuptools | |
run: pip install setuptools_scm setuptools; pip install --upgrade setuptools | |
- name: Get package version from setuptools_scm | |
run: python -m setuptools_scm; git tag -l | |
- name: Build sdist | |
run: pipx run build --sdist | |
- name: Upload sdist artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cibw-sdist | |
path: dist/*.tar.gz | |
upload_pypi: | |
needs: [build_wheels, build_sdist] | |
runs-on: ubuntu-latest | |
environment: pypi | |
permissions: | |
id-token: write | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
# unpacks all CIBW artifacts into dist/ | |
pattern: cibw-* | |
path: dist | |
merge-multiple: true | |
- uses: pypa/gh-action-pypi-publish@release/v1 | |
# with: | |
# user: ${{ secrets.PYPI_USERNAME }} | |
# password: ${{ secrets.PYPI_PASSWORD }} | |
# To test: repository-url: https://test.pypi.org/legacy/ |