Skip to content

Deploy to PYPI

Deploy to PYPI #36

Workflow file for this run

name: Deploy to PYPI
on:
workflow_dispatch:
jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
env:
CIBW_BUILD: ${{ vars.CIBW_BUILD }}
strategy:
matrix:
os: ${{ fromJSON(vars.BUILD_OS)}}
steps:
- uses: actions/checkout@v4
# Used to host cibuildwheel
- uses: actions/setup-python@v5
- name: Install cibuildwheel
run: python -m pip install cibuildwheel==2.21.2
- name: build
run: python -m cibuildwheel --output-dir wheelhouse
- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl
sdist:
name: Build sdist
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build
- name: Build sdist
run: python -m build --sdist
- uses: actions/upload-artifact@v4
with:
name: dist
path: ./dist/*.tar.gz
publish:
name: Publish wheels to pypi
runs-on: ubuntu-latest
permissions:
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write
needs: build_wheels
steps:
- uses: actions/download-artifact@v4
with:
path: wheelhouse
- name: copy to wheelhouse
run: |
mkdir wheels
cp -r wheelhouse/*/*.whl wheels
cp -r dist/* wheels
- uses: pypa/gh-action-pypi-publish@release/v1
with:
skip-existing: true
verbose: true
packages-dir: wheels/