52 lines
1.5 KiB
YAML
52 lines
1.5 KiB
YAML
name: PyPi Release
|
|
|
|
# https://help.github.com/en/actions/reference/events-that-trigger-workflows
|
|
on:
|
|
# Only trigger on release creation
|
|
release:
|
|
types:
|
|
- created
|
|
workflow_dispatch:
|
|
|
|
|
|
# based on https://github.com/pypa/gh-action-pypi-publish
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Get history and tags for SCM versioning to work
|
|
run: |
|
|
git fetch --prune --unshallow
|
|
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
|
|
- uses: actions/setup-python@v2
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip setuptools wheel
|
|
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
|
- name: Build
|
|
run: >-
|
|
python setup.py sdist bdist_wheel
|
|
# We do this, since failures on test.pypi aren't that bad
|
|
- name: Publish to Test PyPI
|
|
if: startsWith(github.event.ref, 'refs/tags') || github.event_name == 'release'
|
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
with:
|
|
user: __token__
|
|
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
|
|
repository_url: https://test.pypi.org/legacy/
|
|
attestations: false
|
|
|
|
- name: Publish to PyPI
|
|
if: startsWith(github.event.ref, 'refs/tags') || github.event_name == 'release'
|
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
with:
|
|
user: __token__
|
|
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
attestations: false
|