Switch to pyproject.toml-based build #2
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PyPI release | |
# Make a PyPI release. This action: | |
# - builds the release files | |
# - checks the tag version matches the source version | |
# - releases on PyPI using the action | |
# This uses an action I made that tries to automatically verify the | |
# release version matches the tag version. If you don't use tags, | |
# then remove that part. The module name can be configured with | |
# MOD_NAME below. | |
# The upload uses a "trusted publisher". Configure PyPI so that it | |
# knows to accept incoming request from GitHub (no extra auth | |
# configuration here is needed) | |
# https://docs.pypi.org/trusted-publishers/using-a-publisher/ | |
# If MOD_NAME not defined, infer it from the current directory. If | |
# inferred from the directory, '-' is replaced with '_'. This is used | |
# when checking the version name. | |
#env: | |
# MOD_NAME: numpy | |
on: | |
# For Github release-based publishing | |
#release: | |
# types: [published] | |
# For tag-based (instead of Github-specific release-based): | |
push: | |
tags: | |
- '*' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
permissions: | |
contents: read | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
#with: | |
# python-version: 3.8 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
pip install flit twine wheel | |
- name: Build | |
run: | | |
flit build | |
# Verify that the git tag has the same version as the python | |
# project version. | |
- uses: rkdarst/action-verify-python-version@main | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: dist-directory | |
path: dist/ | |
upload: | |
runs-on: ubuntu-latest | |
needs: build | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
permissions: | |
id-token: write # for trusted publishing | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: dist-directory | |
path: dist/ | |
- name: Publish on PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
#with: (this part is old and no longer needed) | |
#user: __token__ | |
#password: ${{ secrets.pypi_password }} | |
#repository_url: https://test.pypi.org/legacy/ |