38 lines
955 B
YAML
38 lines
955 B
YAML
name: Publish to PyPI
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "v*.*.*"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-and-publish:
|
|
name: Build & Publish (${{ matrix.runner }}, py${{ matrix.python }})
|
|
runs-on: ${{ matrix.runner }}
|
|
container:
|
|
image: python:${{ matrix.python }}-bookworm
|
|
|
|
strategy:
|
|
matrix:
|
|
python: ["3.10", "3.11", "3.12"]
|
|
runner: [docker-amd64, docker-arm64]
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
run: |
|
|
git clone --depth=1 --branch "${{ github.ref_name }}" \
|
|
"https://oauth2:${{ github.token }}@bitfreedom.net/code/${{ github.repository }}.git" \
|
|
.
|
|
|
|
- name: Install build tools
|
|
run: pip install build Cython twine
|
|
|
|
- name: Build wheel
|
|
run: python -m build --wheel
|
|
|
|
- name: Publish to PyPI
|
|
env:
|
|
TWINE_USERNAME: __token__
|
|
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
|
run: twine upload dist/*.whl
|