62 lines
1.6 KiB
YAML
62 lines
1.6 KiB
YAML
name: Build and upload to PyPI
|
|
|
|
# Build on every branch push, tag push, and pull request change:
|
|
on: [push, pull_request]
|
|
# Alternatively, to publish when a (published) GitHub Release is created, use the following:
|
|
# on:
|
|
# push:
|
|
# pull_request:
|
|
# release:
|
|
# types:
|
|
# - published
|
|
|
|
jobs:
|
|
build_wheels:
|
|
name: Build wheels on ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-20.04, windows-2019, macos-10.15]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Build wheels
|
|
uses: pypa/cibuildwheel@v2.3.1
|
|
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
path: ./wheelhouse/*.whl
|
|
|
|
build_sdist:
|
|
name: Build source distribution
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Build sdist
|
|
run: pipx run build --sdist
|
|
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
path: dist/*.tar.gz
|
|
|
|
upload_pypi:
|
|
needs: [build_wheels, build_sdist]
|
|
runs-on: ubuntu-latest
|
|
# upload to PyPI on every tag starting with 'v'
|
|
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
|
|
# alternatively, to publish when a GitHub Release is created, use the following rule:
|
|
# if: github.event_name == 'release' && github.event.action == 'published'
|
|
steps:
|
|
- uses: actions/download-artifact@v2
|
|
with:
|
|
name: artifact
|
|
path: dist
|
|
|
|
- uses: pypa/gh-action-pypi-publish@v1.4.2
|
|
with:
|
|
user: __token__
|
|
password: ${{ secrets.pypi_password }}
|
|
# To test: repository_url: https://test.pypi.org/legacy/
|