name: Release
on:
workflow_dispatch: {}
jobs:
python-build:
name: Build for PyPi
runs-on: ubuntu-latest
environment: pypi
defaults:
run:
working-directory: ./python
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install
run: make venv
- name: Build
run: |
set -x
source venv/bin/activate
rm -rf build dist *.egg-info
make build
python -m twine check dist/*
- name: Test
run: |
make venv
make test
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: release-dists
path: ./python/dist/
python-release:
name: Publish to PyPi
runs-on: ubuntu-latest
environment: pypi
needs:
- python-build
defaults:
run:
working-directory: ./python
permissions:
id-token: write
steps:
- name: Retrieve distribution
uses: actions/download-artifact@v4
with:
name: release-dists
path: dist/
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1