98 lines
2.4 KiB
YAML
98 lines
2.4 KiB
YAML
name: Build wheels and publish to PyPI
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
pull_request:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
main:
|
|
name: sdist + pure wheel
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Set up latest Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: "*"
|
|
|
|
- name: Install latest pip, build, twine
|
|
run: |
|
|
python -m pip install --upgrade --disable-pip-version-check pip
|
|
python -m pip install --upgrade build twine
|
|
|
|
- name: Build wheel and source distributions
|
|
run: python -m build
|
|
|
|
- if: github.event_name == 'release'
|
|
name: Upload to PyPI via Twine
|
|
env:
|
|
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
|
|
run: twine upload --verbose -u '__token__' dist/*
|
|
|
|
mypyc:
|
|
name: mypyc wheels (${{ matrix.name }})
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-latest
|
|
name: linux-x86_64
|
|
- os: windows-2019
|
|
name: windows-amd64
|
|
- os: macos-11
|
|
name: macos-x86_64
|
|
macos_arch: "x86_64"
|
|
- os: macos-11
|
|
name: macos-arm64
|
|
macos_arch: "arm64"
|
|
- os: macos-11
|
|
name: macos-universal2
|
|
macos_arch: "universal2"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Build wheels via cibuildwheel
|
|
uses: pypa/cibuildwheel@v2.15.0
|
|
env:
|
|
CIBW_ARCHS_MACOS: "${{ matrix.macos_arch }}"
|
|
|
|
- name: Upload wheels as workflow artifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ matrix.name }}-mypyc-wheels
|
|
path: ./wheelhouse/*.whl
|
|
|
|
- if: github.event_name == 'release'
|
|
name: Upload wheels to PyPI via Twine
|
|
env:
|
|
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
|
|
run: pipx run twine upload --verbose -u '__token__' wheelhouse/*.whl
|
|
|
|
update-stable-branch:
|
|
name: Update stable branch
|
|
needs: [main, mypyc]
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
|
|
steps:
|
|
- name: Checkout stable branch
|
|
uses: actions/checkout@v3
|
|
with:
|
|
ref: stable
|
|
fetch-depth: 0
|
|
|
|
- if: github.event_name == 'release'
|
|
name: Update stable branch to release tag & push
|
|
run: |
|
|
git reset --hard ${{ github.event.release.tag_name }}
|
|
git push
|