Create Release #55
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: Create Release | |
on: | |
release: | |
types: [released] | |
workflow_dispatch: | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # fetch the complete repo history (for setuptools-scm) | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.12' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade build twine | |
# if this is a release, upload to PyPI | |
- name: Build and publish release | |
if: github.event_name == 'release' | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} | |
run: | | |
PACKAGE_VERSION=$(hatch version) | |
echo "Creating package with version $PACKAGE_VERSION" | |
python -m build | |
twine upload dist/* | |
# if this is a manual dispatch, upload to PyPI test index | |
- name: Build and publish test release | |
if: github.event_name == 'workflow_dispatch' | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_TOKEN}} | |
# override setuptools_scm config to remove local version, else PyPI will not accept the package | |
# this allows to push development releases to the test index from any repository state | |
run: | | |
PACKAGE_VERSION=$(hatch version) | |
echo "Creating package with version $PACKAGE_VERSION" | |
python -m build | |
twine upload --repository testpypi dist/* |