Add workflow for release + version in code #1
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 | ||
# | ||
# The first time, you have to upload the release yourself to get the | ||
# API key, to add to gh-secrets. | ||
# | ||
# I upload it with: | ||
# python setup.py sdist bdist_wheel | ||
# twine upload dist/* | ||
# | ||
# To configure the secrets, see steps here: | ||
# https://github.com/pypa/gh-action-pypi-publish | ||
# secret name= pypi_password | ||
# 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): | ||
on: | ||
push: | ||
tags: | ||
- '*' | ||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | ||
permissions: | ||
contents: read | ||
runs-on: ubuntu-latest | ||
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 -r requirements-dev.txt | ||
pip install twine wheel | ||
- name: Build | ||
run: | | ||
python setup.py sdist bdist_wheel | ||
# 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@master | ||
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@v3 | ||
with: | ||
name: dist-directory | ||
path: dist/ | ||
- name: Publish on PyPI | ||
uses: pypa/gh-action-pypi-publish@release/v1 | ||
#with: | ||
#user: __token__ | ||
#password: ${{ secrets.pypi_password }} | ||
#repository_url: https://test.pypi.org/legacy/ |